JPARepository @Query nullif 怎么使用,写个案例
时间: 2024-03-02 08:48:33 浏览: 66
好的,下面是一个使用 JPARepository @Query 和 nullif 函数的例子:
假设有一个 User 实体类,包含 id、name 和 age 三个字段,现在需要查询出所有年龄不相同的用户记录,保留其中年龄最小的记录。可以使用以下代码实现:
```
public interface UserRepository extends JpaRepository<User, Long> {
@Query("SELECT u FROM User u WHERE u.age = (SELECT MIN(nullif(u2.age, 0)) FROM User u2 WHERE u2.name = u.name) ORDER BY u.name ASC")
List<User> findDistinctByAge();
}
```
在上面的代码中,nullif 函数的作用是将 age 字段为 0 的记录转换成 null,这样在比较时就可以忽略这些记录。然后使用子查询查询出每个用户名下年龄最小的记录,最后按照用户名升序排序,返回结果即可。
阅读全文