HHH-17955 Javadoc improvements in StatelessSession
Signed-off-by: Gavin King <gavin@hibernate.org>
This commit is contained in:
parent
dd77ef651a
commit
65a8ffdf0e
|
@ -35,11 +35,31 @@ import org.hibernate.graph.GraphSemantic;
|
||||||
* and so an operation performed via a stateless session never cascades to
|
* and so an operation performed via a stateless session never cascades to
|
||||||
* associated instances.
|
* associated instances.
|
||||||
* <p>
|
* <p>
|
||||||
|
* The basic operations of a stateless session are {@link #get(Class, Object)},
|
||||||
|
* {@link #insert(Object)}, {@link #update(Object)}, {@link #delete(Object)},
|
||||||
|
* and {@link #upsert(Object)}. These operations are always performed
|
||||||
|
* synchronously, resulting in immediate access to the database. Notice that
|
||||||
|
* update is an explicit operation. There is no "flush" operation for a
|
||||||
|
* stateless session, and so modifications to entities are never automatically
|
||||||
|
* detected and made persistent.
|
||||||
|
* <p>
|
||||||
|
* Similarly, lazy association fetching is an explicit operation. A collection
|
||||||
|
* or proxy may be fetched by calling {@link #fetch(Object)}.
|
||||||
|
* <p>
|
||||||
* Stateless sessions are vulnerable to data aliasing effects, due to the
|
* Stateless sessions are vulnerable to data aliasing effects, due to the
|
||||||
* lack of a first-level cache.
|
* lack of a first-level cache.
|
||||||
* <p>
|
* <p>
|
||||||
* On the other hand, for certain kinds of transactions, a stateless session
|
* On the other hand, for certain kinds of transactions, a stateless session
|
||||||
* may perform slightly faster than a stateful session.
|
* may perform slightly faster than a stateful session.
|
||||||
|
* <p>
|
||||||
|
* Certain rules applying to stateful sessions are relaxed in a stateless
|
||||||
|
* session:
|
||||||
|
* <ul>
|
||||||
|
* <li>it is not necessary to discard a session and its entities after an
|
||||||
|
* exception is thrown by a stateless sessions, and
|
||||||
|
* <li>when an exception is thrown by a stateless session, the current
|
||||||
|
* transaction is not automatically marked for rollback.
|
||||||
|
* </ul>
|
||||||
*
|
*
|
||||||
* @author Gavin King
|
* @author Gavin King
|
||||||
*/
|
*/
|
||||||
|
@ -50,7 +70,10 @@ public interface StatelessSession extends SharedSessionContract {
|
||||||
void close();
|
void close();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Insert a row.
|
* Insert a record.
|
||||||
|
* <p>
|
||||||
|
* The {@link jakarta.persistence.PostPersist} callback will be
|
||||||
|
* triggered if the operation is successful.
|
||||||
*
|
*
|
||||||
* @param entity a new transient instance
|
* @param entity a new transient instance
|
||||||
*
|
*
|
||||||
|
@ -59,7 +82,10 @@ public interface StatelessSession extends SharedSessionContract {
|
||||||
Object insert(Object entity);
|
Object insert(Object entity);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Insert a row.
|
* Insert a record.
|
||||||
|
* <p>
|
||||||
|
* The {@link jakarta.persistence.PostPersist} callback will be
|
||||||
|
* triggered if the operation is successful.
|
||||||
*
|
*
|
||||||
* @param entityName The entityName for the entity to be inserted
|
* @param entityName The entityName for the entity to be inserted
|
||||||
* @param entity a new transient instance
|
* @param entity a new transient instance
|
||||||
|
@ -69,14 +95,20 @@ public interface StatelessSession extends SharedSessionContract {
|
||||||
Object insert(String entityName, Object entity);
|
Object insert(String entityName, Object entity);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update a row.
|
* Update a record.
|
||||||
|
* <p>
|
||||||
|
* The {@link jakarta.persistence.PostUpdate} callback will be
|
||||||
|
* triggered if the operation is successful.
|
||||||
*
|
*
|
||||||
* @param entity a detached entity instance
|
* @param entity a detached entity instance
|
||||||
*/
|
*/
|
||||||
void update(Object entity);
|
void update(Object entity);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update a row.
|
* Update a record.
|
||||||
|
* <p>
|
||||||
|
* The {@link jakarta.persistence.PostUpdate} callback will be
|
||||||
|
* triggered if the operation is successful.
|
||||||
*
|
*
|
||||||
* @param entityName The entityName for the entity to be updated
|
* @param entityName The entityName for the entity to be updated
|
||||||
* @param entity a detached entity instance
|
* @param entity a detached entity instance
|
||||||
|
@ -84,14 +116,20 @@ public interface StatelessSession extends SharedSessionContract {
|
||||||
void update(String entityName, Object entity);
|
void update(String entityName, Object entity);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete a row.
|
* Delete a record.
|
||||||
|
* <p>
|
||||||
|
* The {@link jakarta.persistence.PostRemove} callback will be
|
||||||
|
* triggered if the operation is successful.
|
||||||
*
|
*
|
||||||
* @param entity a detached entity instance
|
* @param entity a detached entity instance
|
||||||
*/
|
*/
|
||||||
void delete(Object entity);
|
void delete(Object entity);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete a row.
|
* Delete a record.
|
||||||
|
* <p>
|
||||||
|
* The {@link jakarta.persistence.PostRemove} callback will be
|
||||||
|
* triggered if the operation is successful.
|
||||||
*
|
*
|
||||||
* @param entityName The entityName for the entity to be deleted
|
* @param entityName The entityName for the entity to be deleted
|
||||||
* @param entity a detached entity instance
|
* @param entity a detached entity instance
|
||||||
|
@ -122,7 +160,7 @@ public interface StatelessSession extends SharedSessionContract {
|
||||||
void upsert(String entityName, Object entity);
|
void upsert(String entityName, Object entity);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve a row.
|
* Retrieve a record.
|
||||||
*
|
*
|
||||||
* @param entityName The name of the entity to retrieve
|
* @param entityName The name of the entity to retrieve
|
||||||
* @param id The id of the entity to retrieve
|
* @param id The id of the entity to retrieve
|
||||||
|
@ -132,7 +170,7 @@ public interface StatelessSession extends SharedSessionContract {
|
||||||
Object get(String entityName, Object id);
|
Object get(String entityName, Object id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve a row.
|
* Retrieve a record.
|
||||||
*
|
*
|
||||||
* @param entityClass The class of the entity to retrieve
|
* @param entityClass The class of the entity to retrieve
|
||||||
* @param id The id of the entity to retrieve
|
* @param id The id of the entity to retrieve
|
||||||
|
@ -142,7 +180,7 @@ public interface StatelessSession extends SharedSessionContract {
|
||||||
<T> T get(Class<T> entityClass, Object id);
|
<T> T get(Class<T> entityClass, Object id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve a row, obtaining the specified lock mode.
|
* Retrieve a record, obtaining the specified lock mode.
|
||||||
*
|
*
|
||||||
* @param entityName The name of the entity to retrieve
|
* @param entityName The name of the entity to retrieve
|
||||||
* @param id The id of the entity to retrieve
|
* @param id The id of the entity to retrieve
|
||||||
|
@ -153,7 +191,7 @@ public interface StatelessSession extends SharedSessionContract {
|
||||||
Object get(String entityName, Object id, LockMode lockMode);
|
Object get(String entityName, Object id, LockMode lockMode);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve a row, obtaining the specified lock mode.
|
* Retrieve a record, obtaining the specified lock mode.
|
||||||
*
|
*
|
||||||
* @param entityClass The class of the entity to retrieve
|
* @param entityClass The class of the entity to retrieve
|
||||||
* @param id The id of the entity to retrieve
|
* @param id The id of the entity to retrieve
|
||||||
|
@ -164,7 +202,7 @@ public interface StatelessSession extends SharedSessionContract {
|
||||||
<T> T get(Class<T> entityClass, Object id, LockMode lockMode);
|
<T> T get(Class<T> entityClass, Object id, LockMode lockMode);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve a row, fetching associations specified by the
|
* Retrieve a record, fetching associations specified by the
|
||||||
* given {@link EntityGraph}.
|
* given {@link EntityGraph}.
|
||||||
*
|
*
|
||||||
* @param graph The {@link EntityGraph}
|
* @param graph The {@link EntityGraph}
|
||||||
|
@ -179,7 +217,7 @@ public interface StatelessSession extends SharedSessionContract {
|
||||||
<T> T get(EntityGraph<T> graph, GraphSemantic graphSemantic, Object id);
|
<T> T get(EntityGraph<T> graph, GraphSemantic graphSemantic, Object id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieve a row, fetching associations specified by the
|
* Retrieve a record, fetching associations specified by the
|
||||||
* given {@link EntityGraph}, and obtaining the specified
|
* given {@link EntityGraph}, and obtaining the specified
|
||||||
* lock mode.
|
* lock mode.
|
||||||
*
|
*
|
||||||
|
@ -228,7 +266,7 @@ public interface StatelessSession extends SharedSessionContract {
|
||||||
void refresh(String entityName, Object entity, LockMode lockMode);
|
void refresh(String entityName, Object entity, LockMode lockMode);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fetch an association that's configured for lazy loading.
|
* Fetch an association or collection that's configured for lazy loading.
|
||||||
* <p>
|
* <p>
|
||||||
* Warning: this operation in a stateless session is quite sensitive
|
* Warning: this operation in a stateless session is quite sensitive
|
||||||
* to data aliasing effects and should be used with great care.
|
* to data aliasing effects and should be used with great care.
|
||||||
|
|
Loading…
Reference in New Issue