Spring 引导 JPA 本机查询 - 不是基于参数的空检查

Spring Boot JPA Native Query - is not null check based on parameter

在 Spring 启动 JPA 本机查询中,我们如何根据参数添加动态检查列值是否可以为 null。例如,在下面的场景中,如果 isEmailNullAllowedtrue,那么 'email' 列可以是 null,否则它必须是 not null

@Query(value = "select * from users where user_id=:userId and email is not null")
List<User> findByName(@Param("userId") String userId,
                      @Param("isEmailNull") Boolean isEmailNullAllowed);

or:

@Query(value = "select * from users where user_id=:userId and (:isEmailNull = true or email is not null)")
List<User> findByName(@Param("userId") String userId,
                      @Param("isEmailNull") Boolean isEmailNullAllowed);