Hibernate four kinds of states:
temporary State (transient): just created with the new statement, has not been persisted, is not in the session cache. A Java object that is in a temporary state is called a temporary object.
Persistent State (persistent): has been persisted and added to the session cache. A Java object that is in a persistent state is called a persisted object.
Free State (detached): has been persisted, but is no longer in the session's cache. A Java object in a free state is called a free object.
Delete Status (removed): The OID is not NULL. Removed from the cache of a session instance. The deleted object corresponds to the related record in the database. The session has been scheduled to be removed from the database. When the session cleans up the cache, it executes the SQL DELETE statement and deletes the corresponding record in the database. In general, applications should no longer use objects that are deleted.
For example:
Here the state is divided into four kinds, sometimes said only 3 in the state, respectively, is transient, persistent, detached, where the transient state contains the former delete state. However, as noted above, the newly created object (transient) is not an ID, and the object after the delete has an ID, so there is a slight difference. The jump diagram of three states is as follows: