当前位置: 首页 > 知识库问答 >
问题:

使用spring-data-neo4j时如何修复java.lang.IllegalStateException

苍恩
2023-03-14

我有一个简单的测试项目,其中使用spring boot版本:2.1.0版本检查spring-data-neo4j(https://github.com/tomkasp/neo4j-playground/blob/master/src/main/java/com/athleticspot/neo4jplayground/domain/atherepository.java)

spring-data-neo4j(版本:5.1.4.release)依赖项由spring-boot-starter-data-neo4j注入。

我的目标是创建一个repository方法,该方法使用containing和ingnorecase功能来获取数据。为此,我在存储库中创建了以下方法

public interface AthleteRepository extends CrudRepository<Athlete, Long> {

    List<Athlete> findByNameContainingIgnoreCase(String name);

}  

当我运行上面的函数时,我会得到:

java.lang.IllegalStateException: Unable to ignore case of java.lang.String types, the property 'name' must reference a String
at org.springframework.util.Assert.state(Assert.java:73) ~[spring-core-5.1.2.RELEASE.jar:5.1.2.RELEASE]
at org.springframework.data.neo4j.repository.query.filter.PropertyComparisonBuilder.applyCaseInsensitivityIfShouldIgnoreCase(PropertyComparisonBuilder.java:101) ~[spring-data-neo4j-5.1.2.RELEASE.jar:5.1.2.RELEASE]

spring-data-neo4j不支持包含和IgnoreCase一起吗?我是不是漏掉了什么?

共有1个答案

越扬
2023-03-14

目前看来这是不可能的,因为引用的org.springframework.data.neo4j.repository.query.filter.PropertyComparisonBuilder似乎只允许忽略“simple_proerty”(is或等于)的大小写。请参阅同一类中的方法CanIgnoreCase:

private boolean canIgnoreCase(Part part) {
    return part.getType() == SIMPLE_PROPERTY && String.class.equals(part.getProperty().getLeafType());
}

spring 5.2(摩尔)附带了一个修复程序:https://jira.spring.io/browse/datagraph-1190

 类似资料:
  • 我无融资创业新项目访问Neo4j数据与REST的例子。该示例使用嵌入式数据库,而不是独立的neo4j服务器,但我希望使用Neo4J webadmin界面来可视化我的数据。如何从此配置开始启用webadmin接口? (他们让WrappingNoServerBootstrapper与spring-data-neo4j一起使用WrappingNoServerBootstrapper,但答案中遗漏了很多知

  • 问题内容: 我正在从“ 使用REST访问Neo4j数据”示例中引导一个新项目。该示例使用嵌入式数据库而不是独立的neo4j服务器,但是我想使用Neo4J Webadmin界面来可视化我的数据。如何从此配置开始启用Webadmin界面? (他们让WrappingNeoServerBootstrapper与spring-data-neo4j一起使用WrappingNeoServerBootstrapp

  • 我们将mysql与hibernate4一起用于我们的一个应用程序。我们正在数据库中存储一些错误消息。下面是用于以DB存储当前时间的类属性。 现在,我们试图将这些数据存储在Neo4J graph DB和mysql DB中。我们也不想改变这个类当前的行为。 当我试图将此对象保存在Neo4J DB中时,它会抛出异常,如下所示: 原因:java.lang.IllegalArgumentException:

  • 问题内容: 我有一个应用程序,它使用MySQL和通过REST的Neo4j服务器版本执行一些批处理作业。 我无法弄清楚如何使它们正确地协同工作:我可以使它们两个同时工作,但不能同时工作。我发现的帖子并非特定于Neo4j的服务器版本,也许就是问题所在,因为其他一切对我来说似乎都不错。 我的配置: JpaConfig Neo4j.xml 通过这种配置,Mysql可以完美工作,但是Neo4j不会将任何属性

  • Spring Data Neo4J 提供高级特性,将批注的实体类映射到的 Neo4j 图形数据库。它的模块化编程模型相当于知名的 Spring 模块,建立了与图形交互的基础,并且可用于先进储存库支持。Spring Data Neo4j 是 Spring Data 项目的一部分,目标是向 NoSQL 数据库提供便捷支持。

  • 我试图使用java.lang.字符串作为NodeEntity的@Id。 根据Spring数据neo4j文档应该是可能的: 当我尝试插入时,我得到一个: 这很奇怪,因为String实现了可序列化。有人知道下一步去哪里搜索吗?