我使用 spring-boot-starter-data-mongodb here 从 Spring Data MongoDB 查询创建了 NullPointerException 的演示.
在使用 IgnoreCase 的 MongoRepository 上调用 spring jpa 方法并传入 null 时,会引发 NPE。从链接代码中:
repository.findByFirstNameIgnoreCase(null);
将抛出 NullPointerException,其中
repository.findByFirstName(null);
返回空。
那么,在使用无法(轻松)保证非空参数的 MongoRepository 时,如何进行不区分大小写的搜索?
额外的问题,如果这不是设计使然,我该如何帮助解决这个问题?我可以在 Spring JIRA 上提出这个问题吗?
编辑:已确认问题,ticket being worked on
最佳答案
PR fixing the issue in Spring Data MongoDB merged
解决方法可能是
repository.findByFirstNameIgnoreCase(nonNull(arg) ? arg : "");
在修复发布之前防止 null 情况。
关于java - 使用 IgnoreCase 进行 Spring Data MongoDB 查询时来自 MongoQueryCreator 的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42076003/