我有两个相同的查询。一个正在运行,entityManager.createQuery()另一个@Query作为PagingAndSortingRepository. entityManager 查询运行正常,但 @Query 注释中的相同查询返回错误。
可能是因为@Query注释将查询作为 JPQL 执行,而将entityManager.createQuery()查询作为 HQL 执行?
这是两个例子:
@Query(不起作用)
@Repository
public interface UserRepository extends PagingAndSortingRepository<User, UUID> {
@Query("select p.user from Perspective p where p.organisation.id = 'c25c86a0-0d8e-4beb-9ba7-e38d932b8410'")
List<User> findUsers();
}
could not resolve property: lastname of: org.jembi.appstore.service.entities.Perspective
// note: lastname is a property of user, not perspective.
entityManager.createQuery(确实有效)
@Autowired
EntityManager entityManager;
@RequestMapping("/query")
@ResponseBody
public void testQuery() {
Query query = entityManager.createQuery("select p.user from Perspective p where p.organisation.id = 'c25c86a0-0d8e-4beb-9ba7-e38d932b8410'");
List<User> users = query.getResultList();
users.forEach(u -> System.out.println(u.getFirstname()));
}
UYOU
一只萌萌小番薯
相关分类