Home  >  Article  >  Java  >  What are the statuses of Hibernate in java

What are the statuses of Hibernate in java

PHPz
PHPzforward
2023-05-03 20:19:051466browse

1. Transient state

An entity object created by opening up memory space with new, but it is not included in the management of hibernate session. If no variable refers to it, it will Recycled by JVM (garbage collector). The transient state object is isolated in the memory. It has no connection with the database and is just a carrier for carrying information.

A transient state object is referenced by a persistent state object, and it will automatically become a persistent state object. For example, when calling the save, saveorupdate and other methods of the session.

Features:

(1) The object created using new does not have the id attribute set

(2) It is not hosted by the session. In other words, the object data is stored in memory. , it is not stored in the session cache

(3) There is no correlation between the temporary object data and the data in the database

2. Persistent state

The persistent state object is associated with the data in the database, and it is always associated with the session state (Session) and transaction (Transaction). When the persistent state object changes, the database operation will not be performed immediately. Only when the transaction ends, the database will be updated to ensure the synchronization of Hibernate's persistent object and database operations.

When the persistent state object becomes a managed state object, it will not be within the management scope of the Hibernate persistence layer.

Features:

(1) It is either a data object queried from the database using the get or load method, or the data is converted into a persistence layer object using the save or update method

(2) Object data is managed by session. In other words, there is a copy of the object data in the session cache and a corresponding record in the database.

3. Out-of-control state

When the persistent object After the Session is closed, the object changes from the persistent state to the managed state. The managed state object is still associated with the data in the database, but it is not within the scope of Hibernate's Session.

If you re-associate a detached object to a new Session, it will change back to a persistent object.

Features:

(1) It is mainly obtained by calling session.evict() or session.clear() or session.close() through the persistent state object. It can also be set by new Object with id value

(2) There is no object in the session cache, but there is an object in the memory (Note: The object has an id value set)

4. Delete state

When the delete method of session is called, the object changes to the deleted state. The deleted state can onlywait to be recycled.

The above is the detailed content of What are the statuses of Hibernate in java. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete