JPA 查询:如何检查 IS NULL 或 IS NOT NULL?

时间:2021-05-04 08:28:35

标签: java spring jpa spring-data-jpa

我有以下参数

Boolean isActive = true/false

我需要在 JPA 查询中传递这个参数。

true =  IS NOT NULL
false = IS NULL

@Query("select t from Test t WHERE t.active = ?1")
Optional<Test> findByIds(Boolean isActive);

我怎样才能做到这一点,而不是为 IS NULL 和 IS NOT NULL 创建 2 个单独的查询。

1 个答案:

答案 0 :(得分:5)

您可以通过以下方式实现

@Query("select t from Test t WHERE (?1 = true AND t.active IS NOT NULL) OR
                                   (?1 = false AND t.active IS NULL")
Optional<Test> findByIds(Boolean isActive);