![](/img/trans.png)
[英]Spring Data JPA @Query annotation, nativeQuery = true,
[英]Can @Query annotation in Spring Data JPA take in a list of enums?
我一直在尝试找出如何为我的sql查询输入枚举列表。 看起来是这样的:
@Query(value = "Select * from employees where city in :cities", nativeQuery = true)
List<Employee> findByCities(@Param("cities") List<City> cities);
我知道对于简单的查询,我们可以依赖JPA Criteria API,但我想知道是否可以用这种方法来代替。 因为这样,如果我可以灵活地指定列表,则可以创建更复杂的查询(例如与另一个表的联接)。
是的spring-data-jpa的@Query
可以接受一个enums
列表。
这是我的存储库方法
@Query("Select u from User u where u.userType in :types")
List<User> findByType(@Param("types") List<UserType> types);
这是我的仓库电话
userRepository.findByType(Arrays.asList(AppConstant.UserType.PRINCIPLE)))
这是查询日志
SELECT user0_.id AS id1_12_,
user0_.date_created AS date_created2_12_,
...
...
FROM users user0_
WHERE user0_.user_type IN ( ? )
希望这可以帮助。
PS:我在本地计算机上对此进行了测试,并获得了积极的结果。
更新1
对于nativeQuery=true
,这是nativeQuery=true
。 我在本地系统上对其进行了测试,它似乎不适用于本机查询。 但是,使用JPQL可以如上述答案中所述正常工作。
可能这个答案会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.