public class

LockOptions

extends Object
implements Serializable
java.lang.Object
   ↳ org.hibernate.LockOptions

Class Overview

Contains locking details (LockMode, Timeout and Scope).

Summary

Constants
int NO_WAIT Indicates that the database should not wait at all to acquire the pessimistic lock.
int WAIT_FOREVER Indicates that there is no timeout for the acquisition.
Fields
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)
public static final LockOptions UPGRADE UPGRADE represents LockMode.UPGRADE (will wait forever for lock and scope of false meaning only entity is locked)
Public Constructors
LockOptions()
LockOptions(LockMode lockMode)
Public Methods
static LockOptions copy(LockOptions from, LockOptions dest)
Shallow copy From to Dest
int getAliasLockCount()
Get the number of aliases that have specific lock modes defined.
Iterator getAliasLockIterator()
Iterator for accessing Alias (key) and LockMode (value) as Map.Entry
LockMode getAliasSpecificLockMode(String alias)
Get the LockMode explicitly specified for the given alias via setAliasSpecificLockMode(String, LockMode)

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

LockMode getEffectiveLockMode(String alias)
Determine the LockMode to apply to the given alias.
LockMode getLockMode()
Retrieve the overall lock mode in effect for this set of options.
boolean getScope()
Retrieve the current lock scope setting.
int getTimeOut()
Retrieve the current timeout setting.
LockOptions setAliasSpecificLockMode(String alias, LockMode lockMode)
Specify the LockMode to be used for a specific query alias.
LockOptions setLockMode(LockMode lockMode)
Set the overall LockMode to be used.
LockOptions setScope(boolean scope)
Set the cope.
LockOptions setTimeOut(int timeout)
Set the timeout setting.
[Expand]
Inherited Methods
From class java.lang.Object

Constants

public static final int NO_WAIT

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

See Also
Constant Value: 0 (0x00000000)

public static final int WAIT_FOREVER

Indicates that there is no timeout for the acquisition.

See Also
Constant Value: -1 (0xffffffff)

Fields

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)

public static final LockOptions UPGRADE

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

Public Constructors

public LockOptions ()

public LockOptions (LockMode lockMode)

Public Methods

public static LockOptions copy (LockOptions from, LockOptions dest)

Shallow copy From to Dest

Parameters
from is copied from
dest is copied to
Returns
  • dest

public int getAliasLockCount ()

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

Returns
  • the number of explicitly defined alias lock modes.

public Iterator getAliasLockIterator ()

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

Returns
  • Iterator for accessing the Map.Entry's

public LockMode getAliasSpecificLockMode (String alias)

Get the LockMode explicitly specified for the given alias via setAliasSpecificLockMode(String, LockMode)

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

Parameters
alias The alias for which to locate the explicit lock mode.
Returns
  • The explicit lock mode for that alias.

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, NONE is returned.

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

Parameters
alias The alias for which to locate the effective lock mode.
Returns
  • The effective lock mode.

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
  • The overall lock mode.

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
  • true if locking will be extended to owned associations

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

public LockOptions setAliasSpecificLockMode (String alias, LockMode lockMode)

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

Parameters
alias used to reference the LockMode.
lockMode The lock mode to apply to the given alias
Returns
  • this LockRequest instance for operation chaining.

public LockOptions setLockMode (LockMode lockMode)

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

Parameters
lockMode The new overall lock mode to use.
Returns
  • this (for method chaining).

public LockOptions setScope (boolean scope)

Set the cope.

Parameters
scope The new scope setting
Returns
  • this (for method chaining).

public LockOptions setTimeOut (int timeout)

Set the timeout setting.

See getTimeOut() for a discussion of meaning.

Parameters
timeout The new timeout setting.
Returns
  • this (for method chaining).
See Also