У меня есть два стола, DVD и Контакт.
DVD можно взять напрокат одному из контактов, а контакт может взять напрокат много DVD.
Многие по одной ссылке (dvd -> contact)
работает нормально.
Но другой способ не работает: (contact -> dvd)
Это отображение контактов:
<set name="dvds" inverse="true">
<key column="contactId"/>
<one-to-many class="Dvd"/>
</set>
Вот средство получения установщика для контакта:
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)