3.2.5.4. カスケード機能を持つトランシティブ永続化
cascade 属性が CascadeType のアレイを値として取得することに気づかれたかもしれません。EJB3 のカスケードコンセプトは、Hibernate のトランシティブ永続化およびカスケード機能に非常に類似しています (ただし、セマンティクスとカスケードタイプが若干異なります)。
- CascadeType.PERSIST: persist() が呼び出された場合、またはエンティティが管理された場合に、永続 (作成) 操作を関連付けられたエンティティにカスケードします。
- CascadeType.MERGE: merge() が呼び出された場合、またはエンティティが管理された場合に、マージ操作を関連付けられたエンティティにカスケードします。
- CascadeType.REMOVE: delete() が呼び出された場合に、削除操作を関連付けられたエンティティにカスケードします。
- CascadeType.REFRESH: refresh() が呼び出された場合に、更新操作を関連付けられたエンティティにカスケードします。
- CascadeType.ALL: 上記のすべて
注記
また、CascadeType.ALL は save-update や lock などの Hibernate 固有の操作もカバーします。詳細については、「カスケード」 を参照してください。
カスケードおよび作成/マージセマンティクスの詳細については、EJB3 仕様の第 6.3 章を参照してください。