Package org.hibernate

Enum LockMode

    • Enum Constant Detail

      • NONE

        public static final LockMode NONE
        No lock required. If an object is requested with this lock mode, a READ lock will be obtained if it turns out to be necessary to actually read the state from the database, rather than pull it from a cache.

        This is the "default" lock mode, the mode requested by calling Session.get(Class, Object) without passing an explicit mode. It permits the state of an object to be retrieved from the cache without the cost of database access.

        See Also:
        LockModeType.NONE
      • OPTIMISTIC

        public static final LockMode OPTIMISTIC
        A shared optimistic lock. Assumes that the current transaction will not experience contention for the state of an entity. The version will be checked near the end of the transaction, to verify that this was indeed the case.

        Note that, despite the similar names this lock mode is not the same as the JPA-defined mode LockModeType.OPTIMISTIC.

      • OPTIMISTIC_FORCE_INCREMENT

        public static final LockMode OPTIMISTIC_FORCE_INCREMENT
        A kind of exclusive optimistic lock. Assumes that the current transaction will not experience contention for the state of an entity. The version will be checked and incremented near the end of the transaction, to verify that this was indeed the case, and to signal to concurrent optimistic readers that their optimistic locks have failed.
        See Also:
        LockModeType.OPTIMISTIC_FORCE_INCREMENT
      • UPGRADE_NOWAIT

        public static final LockMode UPGRADE_NOWAIT
        A pessimistic upgrade lock, obtained using an Oracle-style select for update nowait. The semantics of this lock mode, if the lock is successfully obtained, are the same as PESSIMISTIC_WRITE. If the lock is not immediately available, an exception occurs.
      • UPGRADE_SKIPLOCKED

        public static final LockMode UPGRADE_SKIPLOCKED
        A pessimistic upgrade lock, obtained using an Oracle-style select for update skip locked. The semantics of this lock mode, if the lock is successfully obtained, are the same as PESSIMISTIC_WRITE. But if the lock is not immediately available, no exception occurs, but the locked row is not returned from the database.
      • PESSIMISTIC_READ

        public static final LockMode PESSIMISTIC_READ
        A pessimistic shared lock, which prevents concurrent transactions from writing the locked object. Obtained via a select for share statement in dialects where this syntax is supported, and via select for update in other dialects.

        On databases which do not support for share, this lock mode is equivalent to PESSIMISTIC_WRITE.

        See Also:
        LockModeType.PESSIMISTIC_READ
      • PESSIMISTIC_WRITE

        public static final LockMode PESSIMISTIC_WRITE
        A pessimistic upgrade lock, which prevents concurrent transactions from reading or writing the locked object. Obtained via a select for update statement.
        See Also:
        LockModeType.PESSIMISTIC_WRITE
      • PESSIMISTIC_FORCE_INCREMENT

        public static final LockMode PESSIMISTIC_FORCE_INCREMENT
        A pessimistic write lock which immediately increments the version of the locked object. Obtained by immediate execution of an update statement.
        See Also:
        LockModeType.PESSIMISTIC_FORCE_INCREMENT
    • Method Detail

      • values

        public static LockMode[] values()
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (LockMode c : LockMode.values())
            System.out.println(c);
        
        Returns:
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static LockMode valueOf​(String name)
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
        Parameters:
        name - the name of the enum constant to be returned.
        Returns:
        the enum constant with the specified name
        Throws:
        IllegalArgumentException - if this enum type has no constant with the specified name
        NullPointerException - if the argument is null
      • greaterThan

        public boolean greaterThan​(LockMode mode)
        Check if this lock mode is more restrictive than the given lock mode.
        Parameters:
        mode - LockMode to check
        Returns:
        true if this lock mode is more restrictive than given lock mode
      • lessThan

        public boolean lessThan​(LockMode mode)
        Check if this lock mode is less restrictive than the given lock mode.
        Parameters:
        mode - LockMode to check
        Returns:
        true if this lock mode is less restrictive than given lock mode
      • toExternalForm

        public String toExternalForm()
      • fromExternalForm

        public static LockMode fromExternalForm​(String externalForm)
      • toLockOptions

        public LockOptions toLockOptions()
        Returns:
        an instance of LockOptions with this lock mode, and all other settings defaulted.