Hibernate -> ArrayList cannot be cast to Set

Ich habe eine Java EE-Anwendung und verwende ich Hibernate. Die domain-Objekte, ich habe die List /ArrayList-Set /HashSet, weil es besser ist die Verwendung von Sets.

Aber in meiner Dao-Implementierung, die ich laufen in ein problem:

public Set<Person> getAllPersons() {
    SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
    Session sess = sessionFactory.getCurrentSession();

    Transaction tx = sess.beginTransaction();
    @SuppressWarnings("unchecked")
    Set<Item> items = (Set<Item>) sess.createQuery("from Item").list();
    tx.commit();

    return items;
}

Hier bekomme ich eine Fehlermeldung:

java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Set

Was kann ich tun um diesen Fehler zu vermeiden?

Danke im Voraus & Beste Grüße.

  • Sind Sie sicher, dass Sie wissen, was der Unterschied zwischen einem Satz und einer Liste ist? Denn in keiner Weise ist es 'besser' zu verwenden, ein Satz. Verwenden Sie Sätze, wenn Sie möchten, eine einzelne Instanz von einem Objekt in Ihrer Sammlung, während Sie können mehrere Instanzen des gleichen Objekts in einer Liste.
InformationsquelleAutor Tim | 2010-10-12
Schreibe einen Kommentar