Top Description Methods
org.hibernate

public Interface MultiIdentifierLoadAccess<T>

Known Direct Implementers
org.hibernate.internal.MultiIdentifierLoadAccessImpl
Imports
java.util.List, org.hibernate.graph.GraphSemantic, .RootGraph

Loads multiple instances of a given entity type at once, by specifying a list of identifier values. This allows the entities to be fetched from the database in batches.

var graph = session.createEntityGraph(Book.class);
graph.addSubgraph(Book_.publisher);

List<Book> books =
        session.byMultipleIds(Book.class)
            .withFetchGraph(graph)
            .withBatchSize(20)
            .multiLoad(bookIds);
Author
Steve Ebersole
See Also
Session#byMultipleIds(Class)

Method Summary

Modifier and TypeMethod and Description
public MultiIdentifierLoadAccess<T>

Returns:

this, for method chaining
enableOrderedReturn
(boolean
true if entity instances should be ordered; false if they may be returned in any order.
enabled
)

Should the returned list of entity instances be ordered, with the position of an entity instance determined by the position of its identifier in the list if ids passed to multiLoad?

public MultiIdentifierLoadAccess<T>

Returns:

this, for method chaining
enableReturnOfDeletedEntities
(boolean
true if removed entities should be returned; false if they should be replaced by null values.
enabled
)

Should multiLoad return entity instances that have been marked for removal in the current session, but not yet deleted in the database?

public MultiIdentifierLoadAccess<T>

Returns:

this, for method chaining
enableSessionCheck
(boolean
true if they should be excluded; false if they should be included.
enabled
)

Specifies whether the ids of managed entity instances already cached in the current persistence context should be excluded from the list of ids sent to the database.

public <
The identifier type
K
>
List<T>

Returns:

The persistent entities.
multiLoad
(K...
The ids to load
ids
)

Retrieve the entities with the given identifiers.

public <
The identifier type
K
>
List<T>

Returns:

The persistent entities.
multiLoad
(List<K>
The ids to load
ids
)

Retrieve the entities with the given identifiers.

public MultiIdentifierLoadAccess<T>

Returns:

this, for method chaining
with
(LockOptions
The lock options to use
lockOptions
)

Specify the lock options to use when querying the database.

public MultiIdentifierLoadAccess<T>

Returns:

this, for method chaining
with
(CacheMode
The CacheMode to use
cacheMode
)

Specify the CacheMode to use when obtaining an entity.

public default MultiIdentifierLoadAccess<T>
with(RootGraph<T> graph)

Deprecated since 6.3. use withLoadGraph
public MultiIdentifierLoadAccess<T>
with(RootGraph<T> graph, GraphSemantic semantic)

Customize the associations fetched by specifying an entity graph, and how it should be interpreted.

public MultiIdentifierLoadAccess<T>

Returns:

this, for method chaining
withBatchSize
(int
The batch size
batchSize
)

Specify a batch size, that is, how many entities should be fetched in each request to the database.

public default MultiIdentifierLoadAccess<T>
withFetchGraph(RootGraph<T> graph)

Override the associations fetched by default by specifying the complete list of associations to be fetched as an entity graph.

public default MultiIdentifierLoadAccess<T>
withLoadGraph(RootGraph<T> graph)

Augment the associations fetched by default by specifying a list of additional associations to be fetched as an entity graph.

Method Detail

enableOrderedReturnback to summary
public MultiIdentifierLoadAccess<T> enableOrderedReturn(boolean enabled)

Should the returned list of entity instances be ordered, with the position of an entity instance determined by the position of its identifier in the list if ids passed to multiLoad?

By default, the returned list is ordered and the positions of the entities correspond to the positions of their ids. In this case, the handling of entities marked for removal becomes important.

Parameters
enabled:boolean

true if entity instances should be ordered; false if they may be returned in any order.

Returns:MultiIdentifierLoadAccess<T>

this, for method chaining

enableReturnOfDeletedEntitiesback to summary
public MultiIdentifierLoadAccess<T> enableReturnOfDeletedEntities(boolean enabled)

Should multiLoad return entity instances that have been marked for removal in the current session, but not yet deleted in the database?

By default, instances marked for removal are replaced by null in the returned list of entities when enableOrderedReturn is used.

Parameters
enabled:boolean

true if removed entities should be returned; false if they should be replaced by null values.

Returns:MultiIdentifierLoadAccess<T>

this, for method chaining

enableSessionCheckback to summary
public MultiIdentifierLoadAccess<T> enableSessionCheck(boolean enabled)

Specifies whether the ids of managed entity instances already cached in the current persistence context should be excluded from the list of ids sent to the database.

By default, all ids are included and sent to the database.

Parameters
enabled:boolean

true if they should be excluded; false if they should be included.

Returns:MultiIdentifierLoadAccess<T>

this, for method chaining

multiLoadback to summary
public <K> List<T> multiLoad(K... ids)

Retrieve the entities with the given identifiers.

Note that the options enableReturnOfDeletedEntities and enableOrderedReturn affect the size and shape of the returned list of entity instances.

Parameters
<K>
The identifier type
ids:K[]

The ids to load

Returns:List<T>

The persistent entities.

multiLoadback to summary
public <K> List<T> multiLoad(List<K> ids)

Retrieve the entities with the given identifiers.

Note that the options enableReturnOfDeletedEntities and enableOrderedReturn affect the size and shape of the returned list of entity instances.

Parameters
<K>
The identifier type
ids:List<K>

The ids to load

Returns:List<T>

The persistent entities.

withback to summary
public MultiIdentifierLoadAccess<T> with(LockOptions lockOptions)

Specify the lock options to use when querying the database.

Parameters
lockOptions:LockOptions

The lock options to use

Returns:MultiIdentifierLoadAccess<T>

this, for method chaining

withback to summary
public MultiIdentifierLoadAccess<T> with(CacheMode cacheMode)

Specify the CacheMode to use when obtaining an entity.

Parameters
cacheMode:CacheMode

The CacheMode to use

Returns:MultiIdentifierLoadAccess<T>

this, for method chaining

withback to summary
public default MultiIdentifierLoadAccess<T> with(RootGraph<T> graph)

Deprecated

since 6.3.

use withLoadGraph

Annotations
@Deprecated
since:6.3
withback to summary
public MultiIdentifierLoadAccess<T> with(RootGraph<T> graph, GraphSemantic semantic)

Customize the associations fetched by specifying an entity graph, and how it should be interpreted.

withBatchSizeback to summary
public MultiIdentifierLoadAccess<T> withBatchSize(int batchSize)

Specify a batch size, that is, how many entities should be fetched in each request to the database.

  • By default, the batch sizing strategy is determined by the SQL dialect, but
  • if some batchSize>1 is specified as an argument to this method, then that batch size will be used.

If an explicit batch size is set manually, care should be taken to not exceed the capabilities of the underlying database.

A batch size is considered a hint.

Parameters
batchSize:int

The batch size

Returns:MultiIdentifierLoadAccess<T>

this, for method chaining

withFetchGraphback to summary
public default MultiIdentifierLoadAccess<T> withFetchGraph(RootGraph<T> graph)

Override the associations fetched by default by specifying the complete list of associations to be fetched as an entity graph.

withLoadGraphback to summary
public default MultiIdentifierLoadAccess<T> withLoadGraph(RootGraph<T> graph)

Augment the associations fetched by default by specifying a list of additional associations to be fetched as an entity graph.