New*_*ddy 4 java hibernate hibernate-mapping
我在它们之间有PolicyDO和PolicyDocumentDO.relation如下
PolicyDO.hbm.xml
<bag name="listPolicyDocumentDOList" cascade="all-delete-orphan" lazy="false" inverse="true">
<key column="POLICYSEQ" />
<one-to-many class="dataobjects.policy.PolicyDocumentDO" />
Run Code Online (Sandbox Code Playgroud)
PolicyDO.java
protected List<PolicyDocumentDO> policyDocumentDOList = new ArrayList<PolicyDocumentDO>();
public java.util.List<PolicyDocumentDO> getListPolicyDocumentDOList() {
return this.policyDocumentDOList;
}
public void setListPolicyDocumentDOList(java.util.List<PolicyDocumentDO> list) {
policyDocumentDOList.clear();
policyDocumentDOList = list;
}
PolicyDocumentDO.hbm.xml
<many-to-one name="parentGuidObj" class="dataobjects.policy.PolicyDO" not-null="true" >
<column name="POLICYSEQ" />
</many-to-one>
Run Code Online (Sandbox Code Playgroud)
我什么时候尝试从数据库中查询某些内容,如下所示
session = sessionFactory.openSession();
Query query = session.createQuery(strBuff.toString());
List listQuery = query.list();
Run Code Online (Sandbox Code Playgroud)
我得到以下错误
org.hibernate.HibernateException: A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance:
Run Code Online (Sandbox Code Playgroud)
dataobjects.policy.PolicyDO.listPolicyDocumentDOList
所以在谷歌搜索后,我在PolicyDO中设置listPolicyDocumentDOList时做了以下更改
public void setListPolicyDocumentDOList(java.util.List<PolicyDocumentDO> list) {
policyDocumentDOList.clear();
policyDocumentDOList = list;
}
Run Code Online (Sandbox Code Playgroud)
然后我也遇到了上述错误.我还能做些什么来解决这个错误.谢谢
更改
public void setListPolicyDocumentDOList(java.util.List<PolicyDocumentDO> list) {
policyDocumentDOList.clear();
policyDocumentDOList = list;
}
Run Code Online (Sandbox Code Playgroud)
至
public void setListPolicyDocumentDOList(java.util.List<PolicyDocumentDO> list) {
policyDocumentDOList.clear();
policyDocumentDOList.addAll(list);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9001 次 |
| 最近记录: |