1

私は 2 つのエンティティを持っていItemます。

それらはエンティティとリンクされていますLink

各アイテムには多くのリンクを設定できますが、リンクは 2 つのアイテム間の接続です。

問題は、項目の順序が重要であることです。1 つは常に 1 番目itemで、もう 1 つは 2 番目itemです。

したがって、私のエンティティは次のようになります。

Item
   private Collection<Link> links = new ArrayList<Link>();
    @OneToOne(cascade = CascadeType.ALL, mappedBy = ????)
    public Collection<Link> getLinks() {
       return links;
   }

Link
private Item firstItem;
private Item secondItem;

@OneToOne(mappedBy = ???)
public Item getFirstItem() {
    return firstItem;
}

@OneToOne(mappedBy = ???)
public Item getSecondItem() {
    return secondItem;
}

何を入れればいいですmappedByか?? 疑似マッピングは次のようにItemすればよいので: mappedBy = { "firstItem", "secondItem") }

最初はマッピングがなく、これによりエラーが発生します:

 @OneToOne or @ManyToOne on foo.bar.Item.links references an unknown entity: java.util.Collection
4

1 に答える 1

3

それぞれとをmappedBy指す2 つの異なるコレクションを作成する必要があります。firstItemsecondItem

それらを単一のコレクションとして表示する必要がある場合は、コードで行います。

また、すでに述べたように、の代わりに@OneToMany/を使用する必要があります。必要ありません。@ManyToOne@OneToOne@ManyToOnemappedBy

于 2013-01-21T14:14:43.630 に答える