Spring Data Mongodb findBy在不区分大小写的情况下

时间:2016-07-15 16:59:20

标签: spring-data spring-data-mongodb spring-data-rest

我正在尝试创建一个Spring Data MongoDB存储库方法,该方法可以对给定列表中的字段执行不区分大小写的搜索,这类似于SQL'IN'运算符。

在我的存储库中,我有以下方法:

User findByUsername(@Param("username") String username);
User findByUsernameIgnoreCase(@Param("username") String username);
Page<User> findByUsernameIn(@Param("username") List<String> username, Pageable pageable);
Page<User> findByUsernameIgnoreCaseIn(@Param("username") List<String> username, Pageable pageable);
Page<User> findByUsernameInIgnoreCase(@Param("username") List<String> username, Pageable pageable);
Page<User> findByUsernameInAllIgnoreCase(@Param("username") List<String> username, Pageable pageable);

我还使用@RepositoryRestResource

将存储库公开为REST资源

前三种方法的效果非常好,正如我所料。使用findByUsernameIgnoreCase时,搜索会忽略该案例。使用findByUsernameIn中的给定字符串列表找到用户。

我的问题是我无法合并InIgnoreCase后缀。 最后两种方法也有效,但它们忽略字符串的大小写,正如我希望它们那样。

有没有办法执行不区分大小写的IN搜索而不是回退到显式指定MongoDB @Query

(尝试使用spring-data-mongodb:1.8.4,spring-data-rest-core:2.4.4)

0 个答案:

没有答案