Java, Hibernate java.lang.ClassCastException: org.mise en veille prolongée.collection.PersistentSet ne peut pas être lancé à java.util.HashSet

J'ai deux tables, de DVD et de Contact.

Un DVD peut être loué pour un contact et un contact peut louer de nombreux DVD.

Nombreux à un lien (dvd-->contact) fonctionne très bien.

Mais dans l'autre sens échoue: (contact-->dvd)

C'est le contact de la cartographie:

<set name="dvds" inverse="true">
   <key column="contactId"/>
   <one-to-many class="Dvd"/>
</set>

Ici est de poseur de lecture pour nous Contacter:

private Set<Dvd> dvds = new HashSet<Dvd>();

public Set<Dvd> getDvds(){
   return dvds;
}
public void setDvds(Set<Dvd> dvds){
   this.dvds=dvds;
}

Lorsque j'essaie d'obtenir le DVD loués à partir d'un contact avec ceci:

HashSet<Dvd> tt = (HashSet<Dvd>)dds;

J'obtiens une Exception:

java.lang.ClassCastException: org.hibernate.collection.PersistentSet 
cannot be cast to java.util.HashSet

Ce n'est l'Exception, et comment dois-je faire?

Edit: Cela a résolu mon problème:

.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
D'accord avec Bozho réponse, curieux de savoir pourquoi vous voulez convertir à un béton de classe, - quelle a été votre besoin de faire cela?

OriginalL'auteur gaymer | 2011-01-03