当前位置: 首页 > 面试题库 >

休眠-> ArrayList无法转换为Set

岳志义
2023-03-14
问题内容

我有一个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;
}

在这里我得到一个错误:

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

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

预先感谢您和最诚挚的问候。


问题答案:
List<Item> list = sess.createQuery("from Item").list();
Set<Item> items = new HashSet<Item>(list);

sess.createQuery("from Item").list();返回结果项的数组列表,如果需要在Set中使用它,可以按照代码所示进行制作



 类似资料:
  • 问题内容: 您好,我正在使用developenig Java Web应用程序,并且在尝试使用hibernate模式获取数据时遇到了下一个异常 这里stacktrace 这是我的代码 这是我的对象 这是映射 我正在使用Oracle Weblogic 12c服务器 问题答案: 通过将我的pom.xml中的依赖项更改为较旧的版本4.3.4进行了修复。最终错误已在4.3.4。最终版本更改为4.2.7。 不

  • 问题内容: 您能解释一下为什么会发生这种情况吗,请问如何解决? 因此,我正在使用Oracle-ADF,并且正在使用往复组件。我使用 getValue()方法返回一个对象,我正尝试将其转换为ArrayList,以便以后可以使用它。因此,我创建了 然而,这行代码是香蕉: 而且我一直在 我尝试了其他方式,例如: 但是我仍然遇到同样的问题,该怎么办? 问题答案: 返回一个实现,但不是。它碰巧有一个类名,但

  • 问题内容: 在我的代码的开头,有: 然后,(这里是反转子列表): 有这种方法: 错误消息是: 列表无法转换为ArrayList 为什么? 问题答案: 像这样想,您有一个调用(我使用此名称,因为它是您正在使用的变量的名称)。 您有一个输入类型为的方法。 我们有一个声明为的变量,这意味着我们要说它总是某种(也许,但也许)-甚至。 当您尝试将方法赋予方法时,编译器会停止运行,因为无法确定它是100%an

  • 问题内容: 我有一个 Hibernate的DAO ,在根据 Hibernate的API 3 和 春天3.x中 ,我用一个简单的和 NOT 的+ -我希望这是一个不错的选择- 现在,我的 目标是使用注释将其自动连接到我的DAO中。 在我我有这个: 在数据包内部,我拥有所有的DAO和Service类。 这很简单: 加载期间我没有错误,但仍然是。 我该怎么办? 编辑 这是我的声明: EDIT2 现在不为

  • 问题内容: 尝试将结果集强制转换为映射类时,我收到了hibernate类的类强制转换异常…我能够查看返回的结果集中的数据…但是它以Object []的形式返回我可以将Object []设置为List …我可以正确地进行hibernate映射吗?我从查询中获取了正确的数据,但映射不正确… 映射 映射类 参加班 主要 问题答案: 对于测试,我建议您在产生类强制转换异常的语句周围放置一个try-catc

  • 你能解释一下为什么会发生这种情况,我怎样才能解决它吗? 所以我使用的是Oracle ADF和shuttle组件。我使用