同一类的ClassCastException

时间:2018-12-07 15:05:08

标签: java spring hibernate

我正在尝试将Spring Boot和Hibernate集成在一起,并且我希望不使用存储库就可以访问数据库(我成功地通过 application.properties 中的数据库配置进行了所有CRUD操作,并通过存储库)。 基本上,我在以下代码中有一个 ClassCastException

 Session session = factory.openSession();
        Transaction tx = null;
        List<User> appUsers =null;
        try {
            tx = session.beginTransaction();
            Query query = session.createQuery("FROM User WHERE id = :id");   
            query.setParameter("id", id);  //the id is given by parameter
            appUsers = query.list();
        } catch (Exception e) {
        } finally {
            session.close();
        } 
        User user = appUsers.get(0);

在最后一行,我得到了这个异常,告诉我它不能在用户之间转换(同一类)。我知道不建议使用Query,但我仍然得到相同的结果。甚至 dto(数据传输对象)都没有帮助我。 另外,我已经在调试器中运行,并且从数据库( MySql )获得了正确的结果,但是当我尝试获取存在的第一个对象(User)时,抛出此异常。当我验证User.class.isInstance(appUsers.get(0))时结果为假。我知道User类是根据休眠映射惯例正确编写的。

我做错了什么?

我在网上搜索了其他“解决方案”来解决此问题,但没有一个对我有用或与此异常有关。

任何帮助将不胜感激。

0 个答案:

没有答案