spring-data-jpa 使用Spring CrudRepository时的“不等于”条件

wr98u20j  于 2022-11-10  发布在  Spring
关注(0)|答案(3)|浏览(352)

我应该如何构建findBy方法名,以便实现where子句-

statusCode != 'Denied'

这是一个选择吗?

findByStatusCodeNotIn(List<String> statusCode);

如果我只想传递一个String而不是一个list呢?
谢谢您

3pvhb19x

3pvhb19x1#

您是否查看过Spring Data JPA文档中有关此问题的文档?


# findByStatusCodeNot(String statusCode);

这类似于文档中的示例,如:


# findByLastnameNot
erhoui1w

erhoui1w2#

根据www.example.com上的Spring Data JPA文档https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#reference
您可以使用“Not”保留字来达成此目的。例如,您的方法会是

findByStatusCodeNot(String statusCode);

这意味着要实现“statusCode!= 'Denied'”,您将调用该方法,如下所示

findByStatusCodeNot('Denied');
3pvhb19x

3pvhb19x3#

@Dovmo是正确的,但也要记住,如果您在String数据上操作,您可能必须考虑大小写,即findByStatusCodeNot(String statusCode)将只查找不是'Denied'的记录,但不查找例如'DeniEd'的记录。对于不区分大小写的搜索,您可以附加IgnoreCase-findByStatusCodeNotIgnoreCase(String statusCode)
一般情况下,请按照@Dovmo提供的链接。

相关问题