Package org.hibernate

Interface MultiIdentifierLoadAccess<T>


  • public interface MultiIdentifierLoadAccess<T>
    Loads multiple entities at once by identifiers, ultimately via one of the multiLoad(K...) methods, using the various options specified (if any)
    • Method Detail

      • withBatchSize

        MultiIdentifierLoadAccess<T> withBatchSize​(int batchSize)
        Specify a batch size for loading the entities (how many at a time). The default is to use a batch sizing strategy defined by the Dialect in use. Any greater-than-one value here will override that default behavior. If giving an explicit value here, care should be taken to not exceed the capabilities of of the underlying database.

        Note that overall a batch-size is considered a hint. How the underlying loading mechanism interprets that is completely up to that underlying loading mechanism.

        Parameters:
        batchSize - The batch size
        Returns:
        this, for method chaining
      • enableSessionCheck

        MultiIdentifierLoadAccess<T> enableSessionCheck​(boolean enabled)
        Specify whether we should check the Session to see whether the first-level cache already contains any of the entities to be loaded in a managed state for the purpose of not including those ids to the batch-load SQL.
        Parameters:
        enabled - true enables this checking; false (the default) disables it.
        Returns:
        this, for method chaining
      • enableReturnOfDeletedEntities

        MultiIdentifierLoadAccess<T> enableReturnOfDeletedEntities​(boolean enabled)
        Should the multi-load operation be allowed to return entities that are locally deleted? A locally deleted entity is one which has been passed to this Session's Session.delete(java.lang.Object) / EntityManager.remove(java.lang.Object) method, but not yet flushed. The default behavior is to handle them as null in the return (see enableOrderedReturn(boolean)).
        Parameters:
        enabled - true enables returning the deleted entities; false (the default) disables it.
        Returns:
        this, for method chaining
      • enableOrderedReturn

        MultiIdentifierLoadAccess<T> enableOrderedReturn​(boolean enabled)
        Should the return List be ordered and positional in relation to the incoming ids? If enabled (the default), the return List is ordered and positional relative to the incoming ids. In other words, a request to multiLoad([2,1,3]) will return [Entity#2, Entity#1, Entity#3].

        An important distinction is made here in regards to the handling of unknown entities depending on this "ordered return" setting. If enabled a null is inserted into the List at the proper position(s). If disabled, the nulls are not put into the return List. In other words, consumers of the returned ordered List would need to be able to handle null elements.

        Parameters:
        enabled - true (the default) enables ordering; false disables it.
        Returns:
        this, for method chaining