Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.openjpa.jdbc.kernel
Class MixedLockManager

    java.lang.Object
      org.apache.openjpa.kernel.AbstractLockManager
          org.apache.openjpa.kernel.VersionLockManager
              org.apache.openjpa.jdbc.kernel.PessimisticLockManager
                  org.apache.openjpa.jdbc.kernel.MixedLockManager

All Implemented Interfaces:
  JDBCLockManager, LockLevels, LockManager, Closeable

    public class MixedLockManager

extends PessimisticLockManager

Mixed lock manager implements both optimistic and pessimistic locking semantics in parallel to the JPA 2.0 specification.

Since:
  2.0.0
Author:
  Albert Lee

Field Summary

Fields inherited from class org.apache.openjpa.jdbc.kernel.PessimisticLockManager
`_store, LOCK_DATASTORE_ONLY`

Fields inherited from class org.apache.openjpa.kernel.AbstractLockManager
`ctx, log`

Fields inherited from interface org.apache.openjpa.kernel.LockLevels
`LOCK_NONE, LOCK_READ, LOCK_WRITE`

Constructor Summary
`MixedLockManager()`

Method Summary
`protected List<SQLBuffer>` | `getLockRows(DBDictionary dict, Object id, ClassMapping mapping, JDBCFetchConfiguration fetch, SQLFactory factory)`
`protected void` | `lockInternal(OpenJPAStateManager sm, int level, int timeout, Object sdata, boolean postLockVersionCheck)` Marks the instance's transactional status in accordance with the settings of `VersionLockManager.getVersionCheckOnReadLock()` and `VersionLockManager.getVersionUpdateOnWriteLock()`.
`protected void` | `optimisticLockInternal(OpenJPAStateManager sm, int level, int timeout, Object sdata, boolean postLockVersionCheck)`
`boolean` | `selectForUpdate(Select sel, int lockLevel)` Return whether to issue the given select FOR UPDATE, depending on the capabilities of the dictionary and the fetch configuration.
`boolean` | `skipRelationFieldLock()` Default not to skip relation field to maintain PessimisticLockManager semantics.

Methods inherited from class org.apache.openjpa.jdbc.kernel.PessimisticLockManager
`checkLock, executeQuery, getStore, loadedForUpdate, lockJoinTables, prepareStatement, setContext`

Methods inherited from class org.apache.openjpa.kernel.VersionLockManager
`getLockLevel, getVersionCheckOnReadLock, getVersionUpdateOnWriteLock, lock, refreshLock, release, setLockLevel, setVersionCheckOnReadLock, setVersionUpdateOnWriteLock`

Methods inherited from class org.apache.openjpa.kernel.AbstractLockManager
`beginTransaction, close, endTransaction, getContext, lockAll`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.apache.openjpa.kernel.LockManager
`beginTransaction, close, endTransaction, getLockLevel, lock, lockAll, refreshLock, release`

Constructor Detail

### MixedLockManager

    public MixedLockManager()

Method Detail

### selectForUpdate

    public boolean selectForUpdate(Select sel,
                                   int lockLevel)

  Description copied from interface: `JDBCLockManager`
  Return whether to issue the given select FOR UPDATE, depending on the capabilities of the dictionary and the fetch configuration.

  Specified by:
    `selectForUpdate` in interface `JDBCLockManager`
  Overrides:
    `selectForUpdate` in class `PessimisticLockManager`

### lockInternal

    protected void lockInternal(OpenJPAStateManager sm,
                                int level,
                                int timeout,
                                Object sdata,
                                boolean postLockVersionCheck)

  Description copied from class: `VersionLockManager`
  Marks the instance's transactional status in accordance with the settings of `VersionLockManager.getVersionCheckOnReadLock()` and `VersionLockManager.getVersionUpdateOnWriteLock()`. Override to perform additional locking.

  Overrides:
    `lockInternal` in class `PessimisticLockManager`
  See Also:
    `StoreContext.transactional(java.lang.Object, boolean, org.apache.openjpa.kernel.OpCallbacks)`

### getLockRows

    protected List<SQLBuffer> getLockRows(DBDictionary dict,
                                          Object id,
                                          ClassMapping mapping,
                                          JDBCFetchConfiguration fetch,
                                          SQLFactory factory)

  Overrides:
    `getLockRows` in class `PessimisticLockManager`

### optimisticLockInternal

    protected void optimisticLockInternal(OpenJPAStateManager sm,
                                          int level,
                                          int timeout,
                                          Object sdata,
                                          boolean postLockVersionCheck)

  Overrides:
    `optimisticLockInternal` in class `VersionLockManager`

### skipRelationFieldLock

    public boolean skipRelationFieldLock()

  Description copied from class: `AbstractLockManager`
  Default not to skip relation field to maintain PessimisticLockManager semantics.

  Specified by:
    `skipRelationFieldLock` in interface `JDBCLockManager`
  Overrides:
    `skipRelationFieldLock` in class `AbstractLockManager`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2006-2013 Apache Software Foundation. All Rights Reserved.