Hibernate - > ArrayList不能转换为Set

Tim*_*Tim 9 java hibernate arraylist set classcastexception

我有一个Java EE应用程序,我使用Hibernate.域对象,我将List/ArrayList更改为Set/HashSet,因为最好使用Sets.

但是在我的Dao实现中我遇到了一个问题:

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;
}
Run Code Online (Sandbox Code Playgroud)

在这里我收到一个错误:

java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Set
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能避免这个错误?

提前谢谢你和最诚挚的问候.

Jig*_*shi 23

List<Item> list = sess.createQuery("from Item").list();
Set<Item> items = new HashSet<Item>(list);  
Run Code Online (Sandbox Code Playgroud)

sess.createQuery("from Item").list(); 将返回结果项的数组列表,如果您需要它,请在代码中显示它