我有一個類居民和ResidentInfo 之間的關係一對多ResidentInfo不應該無居民須存在,但ResidentInfo不需要JPA(休眠)一對多的關係,空
這裏是我的課:
public class Resident {
...
@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH}, mappedBy = "resident")
@Cascade({org.hibernate.annotations.CascadeType.ALL})
public List<ResidentInfo> infos;
}
public class ResidentInfo {
...
@ManyToOne(optional = false)
public Resident resident;
public String label;
public String value;
}
我是JPA新手,也許我做錯了。
問題是,當我嘗試一次插入所有數據(同時創建居民及其信息),我有一個空例外。
這是因爲ResidentInfo.resident.id爲空(但由於居民在同一時間創建我不能指定值!)
而且即使是首次創建的居民,我有這樣的錯誤但我不知道爲什麼:
detached entity passed to persist: models.ResidentInfo
那麼如何解決這些問題呢?
嗨,我壓制了「cascade = {CascadeType.PERSIST,CascadeType.MERGE,CascadeType.REFRESH}」是否正確? 另外我已經測試了你的代碼,這隻適用於部分工作,當我想將新的ResidentInfo添加到現有的居民這不起作用 – Bouki 2011-05-10 10:59:14
你是什麼意思,它不起作用?使用指定的方法添加新的ResidentInfo時,結果如何? – Osiris76 2011-05-10 11:17:54
我沒有錯誤,但沒有插入所有ResidentInfos記錄 – Bouki 2011-05-10 11:20:29