2017-10-31 17 views
1

私はいくつかの基本的なことを理解していないので、私は冬眠するのが初めてです。 私はエンティティAとBを持っています。それは1対多の関係です。 Aは複数のBを持つことができます。 以下は、Aに新しいBを追加するときに保存するコードです。これは機能しています。1人から複数人の子供を1人で更新する

A a= this.aService.getAById(AID); 
    b.setA(a); 
    a.getBSet().add(b); 
    this.aService.saveA(a); 

しかし、どのように1つのBエンティティを編集できますか?最初に編集したいBエンティティをセットから削除する必要がありますか? 本当に申し訳ありませんが、それは明らかな問題です。しかし私はすでにGoogleを使って検索しましたが、私が見つけることができる唯一の例は、新しいエンティティを作成して編集しない場合です。

答えて

0

まずデータベースからBを取得する必要があります。マージについて

B b = this.bService.getBById(BID); 
... 
//update b 
this.bService.updateB(b); 
+0

だから私は編集するBを取得します。更新Bとそれはそれですか?編集したいBを含むAを編集する必要はありませんか? – Urban

+0

修正。いいえいいえ、更新する必要はありません。 –

+0

他の人に助けになるようにこの回答をupvoteして受け入れたいかもしれません;) –

-1
//Whether you want update entity B: 
Public void updateBEntity(Integer idB) { 
B b = session.get(B.class, idB); 
//For edit you only have to use the set's methods: 
b.setName(anything); 
b.setPosition(2); 
//final y, that's all 
session.merge(b); 
} 
//In your class controller or Action 

詳しい情報は/持続:

What is the difference between persist() and merge() in Hibernate?

+0

このリンクは質問に答えるかもしれませんが、ここに答えの重要な部分を入れて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューから](/レビュー/低品質の投稿/ 17794277) –

関連する問題