Top Description Fields Constructors Methods
org.hibernate

public Class LockOptions

extends Object
implements Serializable
Class Inheritance
All Implemented Interfaces
java.io.Serializable
Imports
java.io.Serializable, java.util.HashMap, .Map, .Iterator

Contains locking details (LockMode, Timeout and Scope).
Author
Scott Marlow

Field Summary

Modifier and TypeField and Description
private Map<K, V>
private LockMode
public static final int
NO_WAIT

Indicates that the database should not wait at all to acquire the pessimistic lock.

public static final LockOptions
NONE

NONE represents LockMode.NONE (timeout + scope do not apply)

public static final LockOptions
READ

READ represents LockMode.READ (timeout + scope do not apply)

private boolean
private int
public static final LockOptions
UPGRADE

UPGRADE represents LockMode.UPGRADE (will wait forever for lock and scope of false meaning only entity is locked)

public static final int
WAIT_FOREVER

Indicates that there is no timeout for the acquisition.

Constructor Summary

AccessConstructor and Description
public
public

Method Summary

Modifier and TypeMethod and Description
public static LockOptions

Returns:

dest
copy
(LockOptions
is copied from
from
,
LockOptions
is copied to
dest
)

Shallow copy From to Dest

public int

Returns:

the number of explicitly defined alias lock modes.
getAliasLockCount
()

Get the number of aliases that have specific lock modes defined.

public Iterator<E>

Returns:

Iterator for accessing the Map.Entry's
getAliasLockIterator
()

Iterator for accessing Alias (key) and LockMode (value) as Map.Entry

public LockMode

Returns:

The explicit lock mode for that alias.
getAliasSpecificLockMode
(String
The alias for which to locate the explicit lock mode.
alias
)

Get the LockMode explicitly specified for the given alias via setAliasSpecificLockMode

Differs from getEffectiveLockMode in that here we only return explicitly specified alias-specific lock modes.

public LockMode

Returns:

The effective lock mode.
getEffectiveLockMode
(String
The alias for which to locate the effective lock mode.
alias
)

Determine the LockMode to apply to the given alias.

public LockMode

Returns:

The overall lock mode.
getLockMode
()

Retrieve the overall lock mode in effect for this set of options.

public boolean

Returns:

true if locking will be extended to owned associations
getScope
()

Retrieve the current lock scope setting.

public int

Returns:

timeout in milliseconds, or NO_WAIT or WAIT_FOREVER
getTimeOut
()

Retrieve the current timeout setting.

public LockOptions

Returns:

this LockRequest instance for operation chaining.
setAliasSpecificLockMode
(String
used to reference the LockMode.
alias
,
LockMode
The lock mode to apply to the given alias
lockMode
)

Specify the LockMode to be used for a specific query alias.

public LockOptions

Returns:

this (for method chaining).
setLockMode
(LockMode
The new overall lock mode to use.
lockMode
)

Set the overall LockMode to be used.

public LockOptions

Returns:

this (for method chaining).
setScope
(boolean
The new scope setting
scope
)

Set the cope.

public LockOptions

Returns:

this (for method chaining).
setTimeOut
(int
The new timeout setting.
timeout
)

Set the timeout setting.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

aliasSpecificLockModesback to summary
private Map<K, V> aliasSpecificLockModes
lockModeback to summary
private LockMode lockMode
NO_WAITback to summary
public static final int NO_WAIT

Indicates that the database should not wait at all to acquire the pessimistic lock.

See Also
getTimeOut
NONEback to summary
public static final LockOptions NONE

NONE represents LockMode.NONE (timeout + scope do not apply)

READback to summary
public static final LockOptions READ

READ represents LockMode.READ (timeout + scope do not apply)

scopeback to summary
private boolean scope
timeoutback to summary
private int timeout
UPGRADEback to summary
public static final LockOptions UPGRADE

UPGRADE represents LockMode.UPGRADE (will wait forever for lock and scope of false meaning only entity is locked)

WAIT_FOREVERback to summary
public static final int WAIT_FOREVER

Indicates that there is no timeout for the acquisition.

See Also
getTimeOut

Constructor Detail

LockOptionsback to summary
public LockOptions()
LockOptionsback to summary
public LockOptions(LockMode lockMode)

Method Detail

copyback to summary
public static LockOptions copy(LockOptions from, LockOptions dest)

Shallow copy From to Dest

Parameters
from:LockOptions

is copied from

dest:LockOptions

is copied to

Returns:LockOptions

dest

getAliasLockCountback to summary
public int getAliasLockCount()

Get the number of aliases that have specific lock modes defined.

Returns:int

the number of explicitly defined alias lock modes.

getAliasLockIteratorback to summary
public Iterator<E> getAliasLockIterator()

Iterator for accessing Alias (key) and LockMode (value) as Map.Entry

Returns:Iterator<E>

Iterator for accessing the Map.Entry's

getAliasSpecificLockModeback to summary
public LockMode getAliasSpecificLockMode(String alias)

Get the LockMode explicitly specified for the given alias via setAliasSpecificLockMode

Differs from getEffectiveLockMode in that here we only return explicitly specified alias-specific lock modes.

Parameters
alias:String

The alias for which to locate the explicit lock mode.

Returns:LockMode

The explicit lock mode for that alias.

getEffectiveLockModeback to summary
public LockMode getEffectiveLockMode(String alias)

Determine the LockMode to apply to the given alias. If no mode was explicitly set, the overall mode is returned. If the overall lock mode is null as well, LockMode#NONE is returned.

Differs from getAliasSpecificLockMode in that here we fallback to we only return the overall lock mode.

Parameters
alias:String

The alias for which to locate the effective lock mode.

Returns:LockMode

The effective lock mode.

getLockModeback to summary
public LockMode getLockMode()

Retrieve the overall lock mode in effect for this set of options.

In certain contexts (hql and criteria), lock-modes can be defined in an even more granular per-alias fashion

Returns:LockMode

The overall lock mode.

getScopeback to summary
public boolean getScope()

Retrieve the current lock scope setting.

"scope" is a JPA defined term. It is basically a cascading of the lock to associations.

Returns:boolean

true if locking will be extended to owned associations

getTimeOutback to summary
public int getTimeOut()

Retrieve the current timeout setting.

The timeout is the amount of time, in milliseconds, we should instruct the database to wait for any requested pessimistic lock acquisition.

NO_WAIT and WAIT_FOREVER represent 2 "magic" values.

Returns:int

timeout in milliseconds, or NO_WAIT or WAIT_FOREVER

setAliasSpecificLockModeback to summary
public LockOptions setAliasSpecificLockMode(String alias, LockMode lockMode)

Specify the LockMode to be used for a specific query alias.

Parameters
alias:String

used to reference the LockMode.

lockMode:LockMode

The lock mode to apply to the given alias

Returns:LockOptions

this LockRequest instance for operation chaining.

See Also
Query#setLockMode(String, LockMode), Criteria#setLockMode(LockMode), Criteria#setLockMode(String, LockMode)
setLockModeback to summary
public LockOptions setLockMode(LockMode lockMode)

Set the overall LockMode to be used. The default is LockMode#NONE

Parameters
lockMode:LockMode

The new overall lock mode to use.

Returns:LockOptions

this (for method chaining).

setScopeback to summary
public LockOptions setScope(boolean scope)

Set the cope.

Parameters
scope:boolean

The new scope setting

Returns:LockOptions

this (for method chaining).

setTimeOutback to summary
public LockOptions setTimeOut(int timeout)

Set the timeout setting.

See getTimeOut for a discussion of meaning.

Parameters
timeout:int

The new timeout setting.

Returns:LockOptions

this (for method chaining).

See Also
getTimeOut