在课程中,我有一个属性:
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "order")
private Set<OrderLine>
orderLines;
在OrderLine类中,我有一个属性:
Set<OrderLine>
在数据库中,订单行只有一个指向订单的FK。这就是问题所在
我手动构建一个没有ID的Order对象,因为它设置为自动生成,我使用适当的DAO保存。订单表已正确填写,但订单表未填写。
订单行表中订单的FK字段留空。我认为这是因为在插入点,订单ID仍然没有ID。
有没有一种简单的方法可以解决这个问题?
答案 0 :(得分:3)
如何保留订单线实例?
您必须在订单行实例中设置订单对象的实例。
例如:
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();