JPAには奇妙な問題があります:
エンティティがあり、他のエンティティとの関係を追加したばかりなので、最初のエンティティを編集するときに、別のオブジェクトを永続化し、それを更新する最初のエンティティに設定する必要があります。
例によって
会社は最初のエンティティであり、マネージャー エンティティを追加したので、私の会社には、マネージャー テーブルとの関係を持つ「マネージャー」という名前の新しいフィールドができました (そのマネージャーは 1 対多数の会社を管理できるため、多対 1)。
このシナリオのクラス定義には、次のものがあります。
Company.java:
@JoinColumn(name = "manager", referencedColumnName = "id")
@ManyToOne
private Manager manager;
Manager.java:
@OneToMany(mappedBy = "manager")
private List<Company> companies;
そのため、新しいマネージャーを会社に設定しました.remotefacadeを介して編集すると、新しいマネージャーが作成されますが、以前の会社には設定されていません.
奇妙なことに、cascade.persist アノテーションはどこにもありませんが、編集時に永続化されています。
誰かが私を助けることができます:)?
編集:
これは、マネージャーを会社に設定する方法です。
アクション.java
Manager m = new Manager();
... (set all the data)
Company c = companyFacade.find(1); // find by ID
c.setManager(m);
companyFacade.edit(c);