2012-03-25 64 views
1

是否有可能让双向字段autoupdate,如果一方改变?双向字段 - 自动更新?

class Customer { 

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

class Order { 

    @ManyToOne 
    private Customer customer; 
} 

如果我设置类订单的客户领域,我也必须执行附加(为了)Customer类的命令列表? 或者对方可以自动更新吗?

TY

回答

1

我会做到这一点是订单添加到客户,然后坚持它会自动持续订单的“拥有侧”客户的方式。

Order newOrder = new Order(); 

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

根据您使用过的实现(JPA,Hibernate..etc),可能还需要给客户增加了订单也是如此。但是级联应该在大多数实现中关注这一点。我个人不会依赖于确定实施对你会做些什么,并且会增加双方并以这种方式坚持它们。我个人也会一直存储非拥有方。但是,取决于也可能不必要的实施。

+0

是的,这就是我谈到的。我认为会有一种方法可以避免像'order.setCustomer(customer)'这样的额外语句,并且可以通过JPA/Hibernate自动完成。 – membersound 2012-03-26 16:52:15