質問

なぜこれを知っていますか:

class Owner {
  @OneToMany(mappedBy = "owner",
    cascade = CascadeType.ALL)
  public Set<Storage> storages
  ...

class Storage {
  @ManyToOne
  public Owner owner
  ...

期待どおりに機能しません:

Storage s = new Storage("S1")
Owner o = new Owner("O1")
o.storages.add(s)
...
em.persistAndFlush(o)
...
s = Storage.get...
assert(s.owner != null, "Storage does not have an Owner")
o = Order.get...
assert(!o.storages.isEmpty, "Owner does not have any Storage")

テストに失敗します:

[info] - Storage *** FAILED ***
[info]   Storage does not have an Owner

どうすれば修正できますか?

役に立ちましたか?

解決

この質問は2日ごとに一度尋ねられます。 JPAは、双方向協会の所有側を使用して、協会が存在するかどうかを知ります。所有側はある側面です 番号 mappedBy 属性。したがって、JPAに、所有者とストレージの間に協会が存在することを伝えるには、ストレージの所有者を設定する必要があります。

s.setOwner(o);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top