JPAアノテーションを使用して2つのJavaクラス間の集約関係を確立し、それらをデータベースに保持しようとしています。そのような言及hereとしてJPAアノテーションによる集約の関係
public class Ticket
{
private String ticketNo;
private Date releasedDate;
private boolean printed;
}
public class Discount
{
private String percentage;
private Date releasedDate;
private boolean printed;
}
、集約関係は、単方向であり、したがって、それだけには片側をマッピングする必要があります。このpageによって与えられた溶液から、私は解決策がなると思う:
public class Discount
{
private String percentage;
private Date releasedDate;
private boolean printed;
@ManyToOne(name="TICKET_ID")
private Ticket ticket;
}
しかし、いくつかのexamples of aggregationに、多くの方のクラスでは、片側のクラス内で表示されます。したがって、これも考慮しています:
public class Ticket
{
private String ticketNo;
private Date releasedDate;
private boolean printed;
@OneToMany(mappedBy="ticket")
private List<Discount> discounts = new ArrayList<Discount>();
}
どちらのオプションが適切ですか?
「それが正しいかどうかわかりません。なぜ、それは正しいのですか?単方向および双方向関係は合法で有効です。 – ujulu
集約は単方向です。私の疑いは、どの側面(クラス)が対応する注釈を持つべきかを知ることです。 – julian