Hibernate级联更新(反向/ mappedBy)

时间:2012-01-20 04:09:55

标签: java hibernate dao

我定义了2个对象:

class Customer
{
    @OneToMany(mappedBy="customer", fetch=FetchType.LAZY, cascade={CascadeType.ALL})
    @JoinColumn(name="ORDER_ID", nullable=false)
    private Set<Order> orders;
}


class Order
{
    @ManyToOne
    @JoinColumn(name="CUSTOMER_ID", nullable=false, insertable=true, updatable=false)
    private Customer customer;
}

一个客户可以有很多订单。

在我的逻辑中,我将修改Customer的属性并为客户创建新订单。然后我想在不更新客户的情况下将新创建的订单持久化到数据库中。

但是目前我保存(订购)时,它也会更新客户。如何在不更新客户的情况下插入订单?

意思是,这是一对多的映射。我修改了一个对象并创建了一个“很多”对象。我想保存“many”对象而不更新“one”对象。

1 个答案:

答案 0 :(得分:0)

在这种情况下,如果您已经知道,我更喜欢将“many”对象与“one”对象ID一起存储。尝试使用指定的CUSTOMER_ID保存新订单。它在下次加载时在Customer对象中进行应用。