Tôi có một ứng dụng Java EE và tôi sử dụng Hibernate. Các đối tượng miền, tôi đã thay đổi List/ArrayList thành Set/HashSet, vì tốt hơn là sử dụng Sets.Hibernate -> ArrayList không thể được truyền tới Set
Nhưng trong thực hiện Đạo của tôi, tôi chạy vào một vấn đề:
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;
}
Ở đây tôi nhận được một lỗi:
java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Set
tôi có thể làm gì để tránh lỗi này?
Cảm ơn bạn trước & Trân trọng.
Bạn có chắc chắn rằng bạn biết sự khác biệt giữa tập hợp và danh sách là gì? Bởi vì không có cách nào là nó 'tốt hơn' để sử dụng một Set. Bạn sử dụng Sets bất cứ khi nào bạn muốn một cá thể đơn lẻ của một đối tượng trong bộ sưu tập của bạn, trong khi bạn có thể có nhiều cá thể của cùng một đối tượng trong một danh sách. – LeChe