PersonクラスとRoleクラスの間にOnetoMany関係があります。人は複数の役割を持つことができます。私は新しい人を作成するときに、ロール(既存のレコード)は人のIDで更新する必要があります。私はCascadeType Allで@OneToManyマッピングを使用していますが、RoleクラスはPerson IDで更新されていません。 Personを作成しているときに新しいロールを作成して関係として設定すると、正常に動作します。しかし、新しいPersonを作成してそれを既存のRoleに設定しようとすると、更新されません。OneToManyアップデートが子クラスで動作しない
答えて
これは、双方向リンクでは手動で行う必要があります。あなたのケースではhttp://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#tutorial-associations-usingbidir
:Hibernateのチュートリアルでは、良い例を提供しOneToMany側では、あなたのsetPersons(...)メソッドを保護しますが、このような公共addPerson(人物P)メソッドを定義:
public void addPerson(Person p) {
this.getPersons().add(p);
p.setRole(this);
}
を
ところで、人が複数の役割を持つことができ、複数の人に役割を割り当てることができれば、実際には多分ManyToMany関係が望ましいでしょう。だから、必要があると思います:
public void addPerson(Person p) {
this.getPersons().add(p);
p.getRoles().add(this);
}
そして、クラスPersonには:
public void addRole(Role r) {
this.getRoles().add(r);
r.getPersons().add(this);
}
EJB 2.xのコンテナ管理関係(CMR)とは対照的に、これは自動的に処理されていないので、これは、必要があります。 HibernateはPOJOのアプローチを使用します。 CMRの欠点は、オブジェクトを作成するためにコンテナが必要だが、POJOオブジェクトをどこにでも作成できることです。そして、それらを作成した場合、それらは単なる古くからのJavaオブジェクトです。 http://blog.xebia.com/2009/03/16/jpa-implementation-patterns-bidirectional-assocations/
誰にでも下落した人に:これは公式文書からのものです。あなたはよりよい解決策を持っていますか? (注意:Hibernateはあなたのオブジェクトに対して* black magic *を実行しません。双方向リンクを自動化するために必要です)。 –
- 1. クライアントマシンでClickOnceアップデートが動作しない
- 2. Wordpress wpdbのアップデートが動作しない
- 3. プロトタイプAjaxアップデートが動作しない
- 4. アップデート後にiCloudが動作しない
- 5. Eclipseアップデートが動作しない
- 6. Mongoアップデート$が動作しない
- 7. @OneToManyがHibernateの継承で動作しない理由
- 8. Jpa OneToManyが子を持たない
- 9. AndroidでStringUtilsクラスが動作しない
- 10. WordPressのアップデートがカスタムポストタイプで動作しない理由
- 11. linqが動作していないasp.netのアップデート
- 12. Android 4.0.3 - Webサービスのアップデートが正しく動作しない
- 13. 電子クイックスタートアプリケーションが動作しない
- 14. iOS >> prepareForSegue >> IBOutletのアップデートが動作しない?
- 15. TortoiseSVN 1.7アップデート後のフックが動作しない
- 16. cssクラスが動作しない
- 17. Androidクラスが動作しない
- 18. ReactJS CSSクラスが動作しない
- 19. 疑似クラスが動作しない
- 20. Youtubeクラスが動作しない
- 21. MySQLアップデート、どこで動作しないのですか?
- 22. 子ルーティングAngular2がuseAsDefault:trueなしで動作しない
- 23. 新しいページデザイン(タイムライン)アップデート後にFacebook like-boxが動作しない
- 24. アンドロイド:の、textColorは、サポートライブラリ23.2.1アップデート後に動作していない
- 25. ubuntuを11.04にアップデートした後に動作しない
- 26. クラスBで動作しているクラス(A)をJavahが認識しない
- 27. 遅延追加クラス/クラス削除機能が動作しない
- 28. 奇妙! MySQLのアップデートはエラーなしで動作しません
- 29. ScrollViewerの子コントロール上でマウスホイールが動作しない
- 30. スパークヌル演算子がnullable型で動作しない
いくつかのサンプルコードが役立つことがあります。
は、ここでは、この更なる議論の素敵なブログの記事、です。 – axtavt
[この問題](http://stackoverflow.com/questions/2441598/detached-entity-passed-to-persist-error-with-jpa-ejb-code/4905238#4905238)と非常によく似ています。 – zawhtut