Cascade operations
You may already be familiar with cascade delete and update in a relational database. In the ORM world, this notion is a little more complicated. Hibernate treats this as a transitive property that may or may not propagate to the associated entities, depending on the state of the objects (transient, detached, or persistent) as well as the cascade settings that you choose when you define your association.
Hibernate doesn't automatically propagate the persistence operations to the associated entities. However, you can control this behavior using the cascade attribute of an association.
JPA defines certain cascade types: ALL
, DETACH
, MERGE
, PERSIST
, REFRESH
, and REMOVE
. These correspond directly with the operations provided by the EntityManager
interface.
The Hibernate Session interface provides additional operations, such as save, update, or replicate (some names are different in Hibernate and JPA but the underlying operations are the same; for example, detach
versus evict...