【发布时间】:2017-10-11 18:13:01
【问题描述】:
当我使用此代码获取用户时,它可以正常工作。
public List<Users> getActiveUsers(User user) {
EntityManager entityManager = getEntityManager();
List<User> Users = new ArrayList();
try {
users = entityManager.createQuery("select e from User e where e.deleted = :deleted", User.class)
.setParameter("deleted", false)
.getResultList();
} finally {
entityManager.close();
}
return users;
}
但是如果我尝试使用下面的代码只获取一个用户,它会失败。
User user = (User) entityManager.createQuery("select e from User e where e.deleted = :deleted")
.setParameter("deleted", false)+
.getSingleResult();
我无法获取映射用户,例外是:“无法将 com.project.model.User 转换为 com.project.model.User”
【问题讨论】:
-
你可以试试
entityManager.createQuery(query, User.class)吗?你在哪里部署这个? -
我试过了,结果一样。我在哪里部署?不知道我是否理解,它在 localhost 中,并且在 userRepositoryCustom 类中调用了该方法
-
您使用的是什么应用服务器,这似乎是与类加载器有关的问题。还可以尝试将“setMaxResults(1)”添加到您的查询中。
-
我正在使用 Glassfish
-
可以添加日志吗?
标签: hibernate spring-data-jpa hibernate-mapping hibernate-criteria