如何为@NodeEntity的属性设置空值?

时间:2016-04-17 18:04:45

标签: spring neo4j spring-data-neo4j-4

我无法通过存储库将任何属性设置为null。 例如,假设我有以下实体:

@NodeEntity
class User {
    private Long id;
    private String name;
}

如果这个实体已经存在于name:"Victor"的数据库中,那么如果我将它保存为:

User savedUser = userRepository.save(user);

savedUsernull作为名称。但在db中,name属性为Victor

有什么想法,为什么呢?以及如何将属性设置为null值?

PS:似乎关键点,为什么null没有设置,可以在EntityGraphMapper中找到:

for (PropertyReader propertyReader : entityAccessStrategy.getPropertyReaders(classInfo)) {
    Object value = propertyReader.read(entity);
    if (value != null) {
        nodeBuilder.addProperty(propertyReader.propertyName(), value);
    }
}

这些属性根本没有考虑在内......开发人员应该做些什么?

1 个答案:

答案 0 :(得分:1)

请将您的OGM版本更新为2.0.1或将您的SDN版本更新为4.1.1.RELEASE。

作为参考,有一个测试将属性设置为null:https://github.com/neo4j/neo4j-ogm/blob/2.0/core/src/test/java/org/neo4j/ogm/persistence/examples/cineasts/annotated/CineastsIntegrationTest.java#L259