J'ai une application Java EE et j'utilise Hibernate. Les objets de domaine, j'ai changé le List/ArrayList à Set/HashSet, parce qu'il est préférable d'utiliser des ensembles.Hibernate -> ArrayList ne peut pas être converti en Set
Mais dans ma mise en œuvre de Dao je rencontre un problème:
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;
}
Ici je reçois une erreur:
java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Set
Que puis-je faire pour éviter cette erreur?
Merci d'avance & Cordialement.
Etes-vous sûr de savoir quelle est la différence entre un ensemble et une liste? Parce qu'il n'est en aucun cas «préférable» d'utiliser un Set. Vous utilisez des ensembles chaque fois que vous voulez une instance unique d'un objet dans votre collection, alors que vous pouvez avoir plusieurs instances du même objet dans une liste. – LeChe