【发布时间】:2011-01-03 12:24:23
【问题描述】:
我有两张桌子,DVD 和联系人。
一张 DVD 可以租给一个联系人,一个联系人可以租用多张 DVD。
多对一链接(dvd-->contact) 工作正常。
但另一种方式失败:(contact-->dvd)
这是联系人映射:
<set name="dvds" inverse="true">
<key column="contactId"/>
<one-to-many class="Dvd"/>
</set>
这里是联系人的 setter getter:
private Set<Dvd> dvds = new HashSet<Dvd>();
public Set<Dvd> getDvds(){
return dvds;
}
public void setDvds(Set<Dvd> dvds){
this.dvds=dvds;
}
当我尝试从联系人那里租借 DVD 时:
HashSet<Dvd> tt = (HashSet<Dvd>)dds;
我得到一个例外:
java.lang.ClassCastException: org.hibernate.collection.PersistentSet
cannot be cast to java.util.HashSet
异常是什么意思,我该如何解决?
编辑:这解决了我的问题:
.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
【问题讨论】:
-
同意 Bozho 的回答,很想知道您为什么要将其转换为具体的类,-您需要这样做吗?
标签: java hibernate criteria one-to-many