双向字段 - 自动更新?

时间:2012-03-25 22:04:19

标签: java java-ee mapping

是否可以让双向字段自动更新,如果更改了一面?

class Customer {

    @OneToManycascade=ALL, mappedBy="customer")
    public list<Order> orders;
}

class Order {

    @ManyToOne
    private Customer customer;
}

如果我在订单类中设置客户字段,是否还必须对Customer类的订单列表执行添加(订单)? 或者可以以某种方式自动更新另一方?

TY

1 个答案:

答案 0 :(得分:1)

我这样做的方法是将订单添加到客户,然后坚持客户,该客户将自动保留&#34;拥有方&#34;订单

Order newOrder = new Order();

customer.orders.add(newOrder);
order.setCustomer(customer);
customerDao.persistOrMerge(customer);

根据您使用的实现(JPA,Hibernate..etc),您可能还需要将客户添加到订单中。但是在大多数实现中,级联应该处理这个问题。我个人不会依赖于确定实施对您的影响,并且会增加双方并以这种方式坚持。我个人也会首先存储非拥有方。但同样,取决于实施,也可能不是必要的。