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. Symfony OneToMany - ManyToOneエンティティアソシエーションが動作しない
- 2. クライアントマシンでClickOnceアップデートが動作しない
- 3. Wordpress wpdbのアップデートが動作しない
- 4. プロトタイプAjaxアップデートが動作しない
- 5. アップデート後にiCloudが動作しない
- 6. Eclipseアップデートが動作しない
- 7. greenDAOアップデートとupdateInTxが動作しない
- 8. JTable PHPアップデートが動作しない
- 9. Mongoアップデート$が動作しない
- 10. アップデート後にドッカーが動作しない
- 11. @OneToManyがHibernateの継承で動作しない理由
- 12. ToStringがBsonDocumentの子クラスで正常に動作しない
- 13. @OneToMany双方向関係が正しく動作しない
- 14. Jpa OneToManyが子を持たない
- 15. 子コンポーネントでVuexが動作しない
- 16. Spring Boot + Hibernateで動作しないOneToManyマッピング
- 17. クラスがJqueryで動作しない
- 18. AndroidでStringUtilsクラスが動作しない
- 19. Jqueryのサイズ変更が子クラスで正しく動作していない
- 20. AndroidのSQLiteアップデートがAsyncTaskのバックグラウンドで動作しない
- 21. Xcodeアップデート後にCLONONでヘッダファイルが動作しない
- 22. WordPressのアップデートがカスタムポストタイプで動作しない理由
- 23. UNMET PEER DEPENDENCY node.jsがnpmアップデートで動作しない
- 24. パッケージがインストールされていて、動作していない(アップデート)
- 25. シンプルなpythonクラスが動作しない
- 26. linqが動作していないasp.netのアップデート
- 27. アンドロイドデータベースのアップデートが正しく動作しない
- 28. Android 4.0.3 - Webサービスのアップデートが正しく動作しない
- 29. v6.9にアップデートした後、npmのインストールが動作しない
- 30. OneToManyの関係がうまく動作しないようです。
いくつかのサンプルコードが役立つことがあります。
は、ここでは、この更なる議論の素敵なブログの記事、です。 – axtavt
[この問題](http://stackoverflow.com/questions/2441598/detached-entity-passed-to-persist-error-with-jpa-ejb-code/4905238#4905238)と非常によく似ています。 – zawhtut