我有一个F的映射文件,它通过多对一关系链接到其他人。 我不得不在F到HF之间添加一对多的关系
以下内容已添加到F映射文件
<set name="hf" fetch="join" inverse="false" lazy="true" order-by="DATECRE">
<key>
<column name="METIER" />
<column name="SITEGEO" />
<column name="CPTDOSSIER" />
<column name="NUMLIGNE" />
</key>
<one-to-many class="HF" />
</set>
使用时,我有以下错误。 我认为它可能是逆属性被改变但F应该是关系所有者,所以我把它设置为假。
有人可以指导我吗?
ERROR 06/02/2014 16:42:30 [BasicPropertyAccessor.java.set(117)] HHH000123: IllegalArgumentException in class: org.nit.persistance.entites.base.BF, setter method of property: hf
ERROR 06/02/2014 16:42:30 [BasicPropertyAccessor.java.set(118)] HHH000091: Expected type: java.util.List, actual value: org.hibernate.collection.internal.PersistentSet
INFO 06/02/2014 16:42:30 [DefaultLoadEventListener.java.onLoad(159)] HHH000327: Error performing load command : org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of org.nit.persistance.entites.base.BF.hf
在我的FProxy中,我添加了以下行。 我根本不需要设置HF。
List<HFProxy> getHf();
在F班中,添加了以下内容
private List<HF> hf;
public List<HF> getHf() {
return hf;
}
答案 0 :(得分:0)
解决方案
一个。仅在代理部分中创建一个getter。
List<HistoFichesProxy> getHistofiches();
B中。在实体F。
中创建一个getter和setter℃。将F hbm文件修改为:
<bag name="hf" fetch="join" inverse="false" lazy="true" order-by="DATECRE">
<key>
<column name="METIER" />
<column name="SITEGEO" />
<column name="CPTDOSSIER" />
<column name="NUMLIGNE" />
</key>
<one-to-many class="HF" />
</bag>