我正在尝试将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类是根据休眠映射惯例正确编写的。
我做错了什么?
我在网上搜索了其他“解决方案”来解决此问题,但没有一个对我有用或与此异常有关。
任何帮助将不胜感激。