2012-03-25 34 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