如何为@NodeEntity 的属性 设置空值?
How to set the null value for a property of @NodeEntity?
我无法通过存储库将任何 属性 设置为 null。
例如,假设我有以下实体:
@NodeEntity
class User {
private Long id;
private String name;
}
如果这个实体已经存在于 name:"Victor"
的数据库中,那么如果我将这样保存它:
User savedUser = userRepository.save(user);
savedUser
的名称将是 null
。但是在数据库中 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);
}
}
根本没有考虑到这些属性...开发人员应该怎么做?
请将您的 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
我无法通过存储库将任何 属性 设置为 null。 例如,假设我有以下实体:
@NodeEntity
class User {
private Long id;
private String name;
}
如果这个实体已经存在于 name:"Victor"
的数据库中,那么如果我将这样保存它:
User savedUser = userRepository.save(user);
savedUser
的名称将是 null
。但是在数据库中 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);
}
}
根本没有考虑到这些属性...开发人员应该怎么做?
请将您的 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