IgnoreCase Finder无法与Spring Data Rest和Neo4J一起使用

时间:2018-07-01 23:53:27

标签: spring spring-boot spring-data spring-data-rest spring-data-neo4j

我无法通过finder方法来哄骗Spring Data Neo4J(带有Spring Data Rest)来忽略大小写。这是一个示例存储库:

@RepositoryRestResource
public interface WidgetRepository extends PagingAndSortingRepository<Widget, Long> {

    Optional<Widget> findByNameIgnoreCase(String name);
}

即使我有IgnoreCase关键字,此示例也只能按大小写查找小部件。我将对如何使用finder方法忽略Neo4J的大小写提出建议。谢谢!

1 个答案:

答案 0 :(得分:1)

Spring Data Neo4j尚未实现区分大小写的关键字。但是可以在派生的查询方法中使用正则表达式。

定义正则表达式查找器方法

Optional<Widget> findByNameMatchesRegex(String name);

并像这样使用它

widgetRepository.findByNameMatchesRegex("(?i)paul");

这是Neo4j中目前唯一通过不区分大小写的查询查找字符串的选项。 https://neo4j.com/docs/developer-manual/current/cypher/clauses/where/#case-insensitive-regular-expressions

但是,这对于在Spring Data Neo4j中支持ignoreCase关键字作为便捷的访问功能可能很有用。