Class IdentifierValue

  • All Implemented Interfaces:
    UnsavedValueStrategy

    public class IdentifierValue
    extends Object
    implements UnsavedValueStrategy
    A strategy for determining if an identifier value is an identifier of a new transient instance or a previously persistent transient instance. The strategy is determined by the unsaved-value attribute in the mapping file.
    • Field Detail

      • ANY

        public static final IdentifierValue ANY
        Always assume the transient instance is newly instantiated
      • NONE

        public static final IdentifierValue NONE
        Never assume the transient instance is newly instantiated
      • NULL

        public static final IdentifierValue NULL
        Assume the transient instance is newly instantiated if the identifier is null.
    • Constructor Detail

      • IdentifierValue

        protected IdentifierValue()
      • IdentifierValue

        public IdentifierValue​(Object value)
        Assume the transient instance is newly instantiated if its identifier is null or equal to value
    • Method Detail

      • isUnsaved

        public @Nullable Boolean isUnsaved​(@Nullable Object id)
        Does the given identifier belong to a new instance?
        Specified by:
        isUnsaved in interface UnsavedValueStrategy
        Parameters:
        id - The value to be tested
        Returns:
        true indicates the value corresponds to unsaved data (aka, transient state); false indicates the value does not corresponds to unsaved data (aka, detached state); null indicates that this strategy was not able to determine conclusively.
      • getDefaultValue

        public @Nullable Object getDefaultValue​(@Nullable Object currentValue)
        Description copied from interface: UnsavedValueStrategy
        Get a default value meant to indicate transience.
        Specified by:
        getDefaultValue in interface UnsavedValueStrategy
        Parameters:
        currentValue - The current state value.
        Returns:
        The default transience value.