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

Spring数据Neo4j未将类字段映射到节点属性

阚英武
2023-03-14

我确实有一个存储库

@Repository
public interface PointOfInterestRepository extends GraphRepository<Poi> {
    // currently empty
}

没有定义自定义方法。因此,我使用了类似的save(T…entities),它们是预定义的。

我的Poi课程如下

@NodeEntity(label = "PointOfInterest")
public class Poi {

    @JsonIgnore
    @GraphId
    Long neo4jId;

    @JsonManagedReference("node-poi")
    @JsonProperty("node")
    @Relationship(type = "BELONGS_TO", direction = Relationship.UNDIRECTED)
    private Node node;

    @JsonProperty("id")
    @Property(name = "poiID")
    private final String id;

    @JsonProperty("uris")
    @Property(name = "uris")
    private final Set<URI> correspondingURIs = new HashSet<>();

   /* Some more stuff I skip here*/
}

带字段的getter。

目前,我能够将这样的Pois保存到neo4j并将其检索回来,但是当我试图通过cypher处理数据库中的这些节点时,似乎这些字段没有映射到neo4j属性。

我以为spring-data-neo4j会将我的类字段转换为neo4j图形属性。我错了吗?

注意:save调用似乎工作得很好。之后,我可以看到数据库中的节点,然后调用findAll(),将正确返回所有保存的节点(POI)以及所有正确的值。但不知何故,在数据库中,我看不到任何属性/字段。

共有1个答案

邵祺
2023-03-14

问题是最终的领域。当从图加载时,SDN将无法将值写回实体,因为这些字段是最终的(并且SDN将只使用默认的无参数构造函数),因此不支持最终字段。删除最终应该解决这个问题。

 类似资料:
  • 我使用Spring-data-neo4j但遇到以下问题。 一切正常,直到我想将查询到的LinkedHashMap转换为@NodeEntity。这是密码 电影班 它们是存储库 在服务中使用时,出现异常: neo4j中的电影节点包含属性“title”、“released”、“tagline”和关系“ACTED_in”、“DIRECTED”和“review”。 顺便说一句,如果我将存储库类型从更改为,异

  • 我需要将源类中的字段值映射到字段属性。我可以使用Mapstruct使用@mapper注释的'expression'参数来完成 有没有其他方法可以不使用“表达式”来进行映射?

  • Spring-data for mongodb特别对待名为“id”的字段:http://static.springsource.org/Spring-data/data-mongo/docs/1.0.0.m5/reference/html/#D0E1508,因为它试图将名为id的字段映射到mongodb中的_id字段。有办法禁用此行为吗?我希望mongodb ObjectId只映射到具有显式注释的

  • 我正在使用Neo4j的最新Spring数据。在这个项目中,我有不同的组,它们可以通过url/group/{id}/project访问,该url/group/{id}/project应该返回用户有权访问的所有项目的列表。这东西工作得很好,但是如果用户输入了一个很大的数字作为groupId,而这个数字在数据库中并不存在,我会得到一个 组织。neo4j。图b。NotFoundException:未找到节

  • 我正试图借助java应用程序中的spring数据来使用neo4j。目前我面临一个奇怪的问题。以下是场景。 现在,当我尝试获取所有具有指向B的RequestedTo关系的UserNode时,我得到以下异常 在这里,我使用Spring中提供的GraphRespository接口对neo4j执行以下查询。 另外,当我在neoclipse中启动此查询时,我可以看到结果中的UserNode上没有“type”

  • 我从一个xml模式生成java类,对于一个复杂类型,我希望jaxb使用一个现有的类,我有一个外部绑定定制文件。自定义类被解组为正确的,除了该类型的单个属性,该属性从未在java类中填充。 下面是类型/类问题的演示。 模式中定义的内容是: 读取匹配xml文件的代码段是: 在这个xml中阅读: 使用JAXB生成的Thing类(不使用自定义xjb),输出符合预期: 使用只有getters的自定义Thin