2013-06-01 65 views
1
@Entity 
public class Record implements Serializable{ 

@Id 
@GeneratedValue(strategy=GenerationType.AUTO) 
private long id; 

@OneToMany(fetch=FetchType.EAGER) 
@Fetch(FetchMode.SUBSELECT) 
@Cascade(value={CascadeType.SAVE_UPDATE}) 
private List<Comment> commentList=new ArrayList<Comment>(); 

} 

@Entity 
public class Comment implements Serializable{ 

@Id 
@GeneratedValue(strategy=GenerationType.AUTO) 
private long id; 

@Column(columnDefinition="text") 
private String content; 
} 

我有一個記錄在我的客戶端,並在列表中添加一些評論。
使用RMI方法:void update(Record reocord)。
然後在服務器上,hibernate將ID = 0的註釋保存到數據庫中,並生成一個生成的ID。

如何將這些ID分配給客戶端中的評論?如果沒有,另一次我打電話更新(記錄reocord),評論將被添加兩次。


也許:記錄更新(記錄重定向),但我認爲如果記錄有大量數據,這不是明智之舉。RMI + hibernate的,怎麼能得到客戶端產生的ID

+0

那麼,我最終選擇通過每次添加新註釋時都返回註釋id來解決此問題。我最好更好地設計數據庫關係和體系結構。 – LYK

回答

0

我遇到了這個問題。如果您自動生成主鍵(主要用於標準化表格),請根據現有數據自行創建一個唯一標識。爲了進行比較,請記住重寫hashcodeequals