我在尝试使用 jpa2.0 将包含持久实体和分离实体(新创建的实体)的实体列表更新到我的数据库中时遇到错误。我的实体包含在合并数据时出现错误(在标题中提到)的内部实体:
Class superclass{
private A a;
private string name;
//getter setters here...
}
Class A{
private long id;
@onetoone(cascade=CascadeType.All, fetch=FetchType.Eager)
private B b;
@onetoone(cascade=CascadeType.All, fetch=FetchType.Eager)
private C c;
//getter setters here...
}
Class Dao{
daoInsert(superclass x){
em.merge(x);
}
}
Run Code Online (Sandbox Code Playgroud)
我希望发送的任何实体都可以合并到数据库中。
Hibernate 通过将以下内容添加到persistence.xml 确实为此提供了解决方案
我可以在 jpa 中做一些与 hibernate.js 相同的事情吗?
请不要建议使用 em.find() 查找实体然后手动更新,因为我也需要实体、持久化实体和新创建的实体。此外,我正在使用弹簧形式将整个专利实体保存到数据库中。
如果我不够清楚,我很抱歉,这是我的第一个问题,我真的是初学者。
任何帮助将不胜感激。
今天自己找到了这个问题的答案。你只需要
从不允许您保留分离实体的实体中删除 CascadeType.MERGE。
如果您使用的是 CascadeType.ALL,那么请提及除 CascadeType.MERGE 之外的所有级联类型。
| 归档时间: |
|
| 查看次数: |
25213 次 |
| 最近记录: |