我有以下参数
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 个单独的查询。
答案 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);