我有一个类居民和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