hibernate @ManyToOne无法正确插入,因为尚未创建FK id

时间:2011-04-16 17:52:26

标签: java hibernate spring relational-database hibernate-annotations

在课程中,我有一个属性:

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

在OrderLine类中,我有一个属性:

Set<OrderLine>

在数据库中,订单行只有一个指向订单的FK。这就是问题所在

我手动构建一个没有ID的Order对象,因为它设置为自动生成,我使用适当的DAO保存。订单表已正确填写,但订单表未填写。

订单行表中订单的FK字段留空。我认为这是因为在插入点,订单ID仍然没有ID。

有没有一种简单的方法可以解决这个问题?

1 个答案:

答案 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();