0

Order オブジェクトがあり、その中に Orderline オブジェクトのコレクションがあります。

注文:

@XmlRootElement
public class Order implements Serializable{
.....
@OneToMany(cascade = CascadeType.ALL, mappedBy = "order")
private List<Orderline> orderlineCollection;

オーダーライン:

@XmlRootElement
public class Orderline implements Serializable{
.....
@JoinColumn(name = "order_id", referencedColumnName = "id")
@ManyToOne(optional = false)
private Order order;

注文オブジェクトは、別のアプリケーションから XML で送信されます。最初は、order_id を null にすることはできないという例外が発生したため、オーダー オブジェクトの前にオーダーラインが保存されたと考えました。

しかし、少し検索した後、xmlをオブジェクトに変換したときに、オーダーラインからオーダーへの関係が設定されていないことがわかりました(らしい)。トーオーダーにはオーダーラインがあります。したがって、これを修正するには、orderline コレクションの順序をループして順序を設定する必要があります。

for(Orderline line : order.getOrderlineCollection()){
    line.setOrder(order);
}

これで問題は解決しましたが、おそらくすべての関係に対してこれを行うのは適切ではありません。これは正常な動作ですか?これを別の方法で修正する必要がありますか?

4

0 に答える 0