Package org.hibernate
Interface IdentifierLoadAccess<T>
-
- All Known Implementing Classes:
IdentifierLoadAccessImpl
public interface IdentifierLoadAccess<T>
Loads an entity by its primary identifier.The interface is especially useful when customizing association fetching using an
EntityGraph
.var graph = session.createEntityGraph(Book.class); graph.addSubgraph(Book_.publisher); graph.addPluralSubgraph(Book_.authors) .addSubgraph(Author_.person); Book book = session.byId(Book.class) .withFetchGraph(graph) .load(bookId);
It's also useful for loading entity instances with a specific cache interaction mode in effect, or in read-only mode.
Book book = session.byId(Book.class) .with(CacheMode.GET) .withReadOnly(true) .load(bookId);
- See Also:
Session.byId(Class)
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Deprecated Methods Modifier and Type Method Description IdentifierLoadAccess<T>
disableFetchProfile(String profileName)
Customize the associations fetched by specifying a fetch profile that should be disabled during this operation.IdentifierLoadAccess<T>
enableFetchProfile(String profileName)
Customize the associations fetched by specifying a fetch profile that should be enabled during this operation.T
getReference(Object id)
Return the persistent instance with the given identifier, assuming that the instance exists.T
load(Object id)
Return the persistent instance with the given identifier, or null if there is no such persistent instance.Optional<T>
loadOptional(Object id)
Just likeload(java.lang.Object)
, except that here anOptional
is returned.IdentifierLoadAccess<T>
with(CacheMode cacheMode)
Specify theCacheMode
to use when obtaining an entity.default IdentifierLoadAccess<T>
with(RootGraph<T> graph)
Deprecated.IdentifierLoadAccess<T>
with(RootGraph<T> graph, GraphSemantic semantic)
Customize the associations fetched by specifying an entity graph, and how it should be interpreted.IdentifierLoadAccess<T>
with(LockOptions lockOptions)
Specify the lock options to use when querying the database.default IdentifierLoadAccess<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.default IdentifierLoadAccess<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.IdentifierLoadAccess<T>
withReadOnly(boolean readOnly)
Specify whether the entity should be loaded in read-only mode.
-
-
-
Method Detail
-
with
IdentifierLoadAccess<T> with(LockOptions lockOptions)
Specify the lock options to use when querying the database.- Parameters:
lockOptions
- The lock options to use- Returns:
this
, for method chaining
-
with
IdentifierLoadAccess<T> with(CacheMode cacheMode)
Specify theCacheMode
to use when obtaining an entity.- Parameters:
cacheMode
- TheCacheMode
to use- Returns:
this
, for method chaining
-
withReadOnly
IdentifierLoadAccess<T> withReadOnly(boolean readOnly)
Specify whether the entity should be loaded in read-only mode.- See Also:
Session.setDefaultReadOnly(boolean)
-
withFetchGraph
default IdentifierLoadAccess<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.
-
withLoadGraph
default IdentifierLoadAccess<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.
-
with
@Deprecated(since="6.3") default IdentifierLoadAccess<T> with(RootGraph<T> graph)
Deprecated.
-
with
IdentifierLoadAccess<T> with(RootGraph<T> graph, GraphSemantic semantic)
Customize the associations fetched by specifying an entity graph, and how it should be interpreted.
-
enableFetchProfile
IdentifierLoadAccess<T> enableFetchProfile(String profileName)
Customize the associations fetched by specifying a fetch profile that should be enabled during this operation.This allows the session-level fetch profiles to be temporarily overridden.
- Since:
- 6.3
-
disableFetchProfile
IdentifierLoadAccess<T> disableFetchProfile(String profileName)
Customize the associations fetched by specifying a fetch profile that should be disabled during this operation.This allows the session-level fetch profiles to be temporarily overridden.
- Since:
- 6.3
-
getReference
T getReference(Object id)
Return the persistent instance with the given identifier, assuming that the instance exists. This method might return a proxied instance that is initialized on-demand, when a non-identifier method is accessed.You should not use this method to determine if an instance exists; to check for existence, use
load(java.lang.Object)
instead. Use this only to retrieve an instance that you assume exists, where non-existence would be an actual error.- Parameters:
id
- The identifier for which to obtain a reference- Returns:
- the persistent instance or proxy
-
load
T load(Object id)
Return the persistent instance with the given identifier, or null if there is no such persistent instance. If the instance is already associated with the session, return that instance, initializing it if needed. This method never returns an uninitialized instance.- Parameters:
id
- The identifier- Returns:
- The persistent instance or
null
-
-