Save This Page
Home » jboss-5.0.0.CR1-src » org » jboss » ejb » plugins » lock » [javadoc | source]
org.jboss.ejb.plugins.lock
public final class: JDBCOptimisticLock [javadoc | source]
java.lang.Object
   org.jboss.ejb.plugins.lock.BeanLockSupport
      org.jboss.ejb.plugins.lock.NoLock
         org.jboss.ejb.plugins.lock.JDBCOptimisticLock

All Implemented Interfaces:
    Resource, BeanLockExt

This class is an optmistic lock implementation. It locks tableFields and their values during transaction. Locked tableFields and their values are added to the WHERE clause of the UPDATE SQL statement when entity is stored. The following strategies are supported: - fixed group of tableFields Fixed group of tableFields is used for locking . The tableFields and their values are locked at the beginning of a transaction. The group name must match one of the entity's load-group-name. - modified strategy The tableFields that were modified during transaction are used as lock. All entity's field values are locked at the beginning of the transaction. The tableFields are locked only after its actual change. - read strategy The tableFields that were read/modified during transaction. All entity's field values are locked at the beginning of the transaction. The tableFields are locked only after they were accessed. - version-column strategy This adds additional version field of type java.lang.Long. Each update of the entity will increase the version value by 1. - timestamp-column strategy Adds additional timestamp column of type java.util.Date. Each update of the entity will set the field to the current time. - key-generator column strategy Adds additional column. The type is defined by user. The key generator is used to set the next value. Note: all optimistic locking related code should be rewritten when in the new CMP design. Note2: done.
Fields inherited from org.jboss.ejb.plugins.lock.BeanLockSupport:
container,  refs,  id,  log,  tx,  synched,  synchedDepth,  txTimeout
Methods from org.jboss.ejb.plugins.lock.NoLock:
endInvocation,   endTransaction,   schedule,   wontSynchronize
Methods from org.jboss.ejb.plugins.lock.BeanLockSupport:
addRef,   attemptSync,   endInvocation,   endTransaction,   getId,   getRefs,   getResourceHolder,   getTransaction,   releaseSync,   removeRef,   schedule,   setContainer,   setId,   setTimeout,   setTransaction,   sync,   wontSynchronize
Methods from java.lang.Object:
equals,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait