jpa JPARepository @Query 在语句中写判断语句,没有IF
时间: 2024-03-02 13:49:26 浏览: 210
使用JPA中@Query 注解实现update 操作方法(必看)
在JPARepository的@Query注解中,可以使用JPQL的CASE WHEN语句来实现条件判断。
CASE WHEN语句可以在查询语句中进行条件判断,类似于if-else语句的作用。它的语法如下:
```
CASE WHEN condition THEN result ELSE otherResult END
```
其中,condition是待判断的条件,result是如果condition为true时的返回结果,otherResult是如果condition为false时的返回结果。多个CASE WHEN语句可以嵌套使用。
例如,假设有一个实体类User,其中有一个字段age,我们要查询年龄大于指定值的用户或者所有用户,可以使用以下JPQL语句:
```
@Query("SELECT u FROM User u WHERE u.age > CASE WHEN :age IS NULL THEN -1 ELSE :age END")
List<User> findUsersByAge(@Param("age") Integer age);
```
这个查询语句中,使用CASE WHEN语句判断参数age是否为空,如果为空则返回-1,否则返回参数age的值。然后在查询语句中使用CASE WHEN语句的返回值来判断是否查询年龄大于指定值的用户。
阅读全文