2

クラス Order には、次のプロパティがあります。

@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "order")
private Set<OrderLine> orderLines;

クラス OrderLine には、次のプロパティがあります。

@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name="OrderID")
private Order order;

DB では、orderline は単に注文を指す FK を持っています。そして問題はここから

自動生成に設定されているため、ID なしで Order オブジェクトを手動で作成し、適切な DAO を使用して保存します。order テーブルは正しく入力されていますが、orderline テーブルは正しくありません。

orderline テーブルの order の FK フィールドは空白のままです。挿入の時点で注文IDにまだIDがないためだと思います。

これを修正する簡単な方法はありますか?

4

1 に答える 1

3

orderline インスタンスをどのように永続化しますか?

orderline インスタンスに注文オブジェクトのインスタンスを設定する必要があります。

例えば:

Order order = new Order();
// populate order



Set<OrderLine> orderLines = new HashSet<OrderLine>();

OrderLine orderline = new OrderLine();
orderline.setOrder(order); // set the order instance
// populate orderline

orderLines.add(orderline);

order.setOrderLines(orderLines);

order.persist();
于 2011-04-16T18:42:58.090 に答える