Spring数据JPA和参数可以为空
我的理解是,对于Spring数据JPA,我无法使用查询方法来获取列等于给定非空方法参数的所有行,而当方法参数为null时,无法使用相同的方法来获取此列为NULL的所有行。
。
那是对的吗?
因此,我必须在我的JAVA代码中对此进行区分,并且必须使用单独的查询方法明确要求空值,如下面的示例所示?
// Query methodsList<Something> findByParameter(Parameter parameter);
List<Something> findByParameterIsNull();
...
List<Something> result = new ArrayList<>();
if (parameter == null)
result = findByParameterIsNull();
else
result = findByParameter(parameter);
不好的是,如果我有4个可以为null的参数,并且必须编写16种不同的查询方法。
回答:
你是对的。
已提出支持更好地处理空参数的请求。
https://jira.spring.io/browse/DATAJPA-121
在您的情况下,我建议您编写存储库实现并使用自定义的CriteriaQuery处理您的情况。
您也可以将@Query注释与is
null语法一起使用:
@Query("[...] where :parameter is null"public List<Something> getSomethingWithNullParameter();
从Spring data jpa 2.0开始,spring现在支持@Nullable注释。这有助于处理传递的空参数。
从文档中:
@Nullable –用于可以为空的参数或返回值。
以上是 Spring数据JPA和参数可以为空 的全部内容, 来源链接: utcz.com/qa/427998.html