使用 SDN 更新 Neo4J 实体的属性

Updating properties of Neo4J Entity using SDN

我正在尝试使用 SDN (spring-data-neo4j 4.1.2.RELEASE) 在 Neo4J 社区版 3.0.3 中更新一个 Person 实体。我在更新实体时看到了一种行为。

这是 Neo4J SDN 的默认行为吗?

下面给出了 pom 条目以及评论中建议的用于 Neo4J 的配置

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-neo4j</artifactId>
        <!-- <version>4.1.2.RELEASE</version> -->
    </dependency>

    <dependency> 
        <groupId>org.neo4j</groupId> 
        <artifactId>neo4j-ogm-core</artifactId> 
        <version>2.0.4</version> 
    </dependency>


public class MyNeo4jConfiguration extends Neo4jConfiguration {
@Bean
public org.neo4j.ogm.config.Configuration getConfiguration() {
    org.neo4j.ogm.config.Configuration config = new org.neo4j.ogm.config.Configuration();
    config
       .driverConfiguration()
       .setDriverClassName("org.neo4j.ogm.drivers.http.driver.HttpDriver")
       .setCredentials("neo4j", "admin")
       .setURI("http://localhost:7474");
   return config;
}

@Bean
public SessionFactory getSessionFactory() {
    return new SessionFactory(getConfiguration(), "au.threeevolutions.bezzur.domain"  );
}
}

此行为已在最新版本的 Neo4j OGM- 2.0.4 中修复 如果您重新加载会话已经跟踪的实体,实体属性将不会被覆盖,即返回会话缓存中的属性,保留您未持久化的修改。但是请注意,如果通过加载相关节点拉入这些关系和新节点,则可以将它们添加到会话中的子图中。