javax.persistenceアノテーションは標準仕様です。休止状態の注釈は、Hibernateの特定の実装を表します。ほとんど重複していますが、Hibernate CascadeTypeはHibernateに固有のオプションをいくつか追加しています。
一般的に、可能であれば、javax.persistence注釈を使用してください。 Hibernateに特有のオプションの1つが必要な場合にのみ、Hibernateの亜種を使用し、他の永続性プロバイダに切り替える必要がない可能性が高いことを知ってください。
多くの人がJPA/Hibernateアノテーションを同じプロジェクト内で混在させていますが、それは有効なものです。しかし、CascadeTypeを含むこのような微妙な相互作用があることができます: - javax.persistence.CascadeTypeコードで
http://www.mkyong.com/hibernate/cascade-jpa-hibernate-annotation-common-mistake/
見て、@OneToManyはJPAからで、それはJPAのカスケードを期待しました。しかし、あなたが休止状態 セッションでそれを保存するとき、org.hibernate.engine.Cascadeが
をチェックし、次の操作を行います...
Hibernateは、プロセスがACTION_SAVE_UPDATEアクションを起こします保存 が、JPAはACTION_PERSISTを通過し、 ACTION_MERGE、それは と一致せず、カスケードを実行できませんでした。