2.2.5.4. Transitive persistence with cascading カスケーディングによる連鎖的永続化

<2.2.5.3.3. Many-to-many | 目次 | 2.2.5.5. Association fetching>

cascade 属性が、値に CascadeType の配列を取ることに気が付いていると思うよ。EJB3 のカスケードのコンセプトは、Hibernate の 推移的永続化と操作の連鎖によく似ているよ。けど、ちょっとだけ意味とカスケーディングのタイプが違うよ。

CascadeType.PERSIST
persist() が呼ばれたり、エンティティが管理されているなら、永続化(create)操作がカスケードされるよ。*1
CascadeType.MERGE
merge() が呼ばれたり、エンティティが管理されているなら、マージ操作がカスケードされるよ。
CascadeType.REMOVE
delete() が呼ばれると、削除操作がカスケードされるよ。
CascadeType.REFRESH
refresh()が呼ばれると、リフレッシュ操作がカスケードされるよ。
CascadeType.ALL
上記の全て
注意
CascadeType.ALL は save-update、lock、などのHibernate仕様もカバーするよ。詳しくは Cascade を見てね。

*1:訳注: 原文のifが一個足りない?