2012-03-25 9 views
1

一方向が変更されていれば双方向フィールドを自動更新できるのですか?双方向フィールド - 自動更新?

class Customer { 

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

class Order { 

    @ManyToOne 
    private Customer customer; 
} 

私はクラス順に顧客のフィールドを設定した場合、私はまた、Customerクラスのオーダーリストに追加する(順)を実行する必要がありますか? もう片方を自動的に何とか更新できますか?私はそれを行うだろう

TY

答えて

1

の方法は、お客様に注文を追加して、自動的に注文の「所有側を」持続しますお客様を持続することです。あなたは(JPA、Hibernate..etc)あまりにも使用実装に応じて

Order newOrder = new Order(); 

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

、あなたも同様に順番に顧客を追加する必要があるかもしれません。しかし、カスケーディングは、ほとんどの実装でそれを処理する必要があります。私は個人的には実装があなたのために何をするかを決めることに頼るつもりはなく、両側に追加してこのように維持します。私は個人的には、常に非所有側を最初に保管します。しかし、やはり必要ではないかもしれない実装に応じて、再び。

+0

はい、これは私が話したことです。 'order.setCustomer(customer);'のような余分な文を避け、JPA/Hibernateによって自動的に行われる方法があると思いました。 – membersound

関連する問題