私は2つのテーブル、DVDと連絡先を持っています。Java、Hibernate java.lang.ClassCastException:org.hibernate.collection.PersistentSetはjava.util.HashSetにキャストできません
DVDは連絡先に借りることができ、連絡先は多くのDVDを借りることができます。
多対1のリンク(dvd-->contact)
はうまく動作します。
しかし、他の方法が失敗します。私はDVDを借りて取得しようとすると
private Set<Dvd> dvds = new HashSet<Dvd>();
public Set<Dvd> getDvds(){
return dvds;
}
public void setDvds(Set<Dvd> dvds){
this.dvds=dvds;
}
:
ここ<set name="dvds" inverse="true">
<key column="contactId"/>
<one-to-many class="Dvd"/>
</set>
連絡用セッターゲッターです:(contact-->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の答えに同意します - それを行うためにあなたの必要性は何でしたか? –