spring data neo4j 6.1.1 Repository Relationship primary_id 不允许使用 UUID 字符串,而节点 Primary_id UUID 字符串正在工作
spring data neo4j 6.1.1 Repository Relationship primary_id not allowing to use UUID String where as for Node Primary_id UUID String is working
我使用 Spring 数据 neo4j 6.1.1 为 neo4j 图形模型创建了以下关系实体来表示关系,例如 Person-BookedFor->Movie 我可以将 UUID 字符串用于节点存储库(Person、Movie)但不能用于以下关系实体 BookedFor。
注意:由于 neo4j 文档对此进行了描述 neo4j doc ref
public interface BookedForRepository extends Neo4jRepository<BookedFor, String> {}
@RelationshipProperties
public class BookedFor {
@Id
@GeneratedValue(UUIDStringGenerator.class)
public String rid;
@Property
private Date bookedDate;
}
抛出如下错误:
The target class *.entities.BookedFor
for the properties of the relationship BookedFor
is missing a property for the generated, internal ID (@Id @GeneratedValue Long id
) which is needed for safely updating properties
注意:如果我像下面这样使用,它会与 neo4j 的内部 ID 建立关系
public interface BookedForRepository extends Neo4jRepository<BookedFor, Long> {}
@RelationshipProperties
public class BookedFor {
@Id
@GeneratedValue
public Long id;
@Property
private Date bookedDate;
}
但这会给数据迁移/数据突变带来不确定性,因为我们依赖于 neo4j 关系实体的内部 ID。如有不妥请指正
任何人都可以帮助以更好的方式进行此操作吗?
此外,如果需要更多说明/详细信息,请发表评论。
您不能直接通过存储库访问关系属性。
这些 classes 只是对关系属性的封装,并不意味着表示“物理”关系或关系实体。
存储库仅用于 @Node
注释 classes。
如果要访问和修改关系的属性,则必须获取关系定义实体。
关系本身始终由其开始和结束节点表示。
最近引入的要求 @Id
仅供内部使用。
如果你有特殊需要在关系中保留一个类似 id 的 属性,它只是 @RelationshipProperties
中的另一个 属性 注释 class.
我使用 Spring 数据 neo4j 6.1.1 为 neo4j 图形模型创建了以下关系实体来表示关系,例如 Person-BookedFor->Movie 我可以将 UUID 字符串用于节点存储库(Person、Movie)但不能用于以下关系实体 BookedFor。
注意:由于 neo4j 文档对此进行了描述 neo4j doc ref
public interface BookedForRepository extends Neo4jRepository<BookedFor, String> {}
@RelationshipProperties
public class BookedFor {
@Id
@GeneratedValue(UUIDStringGenerator.class)
public String rid;
@Property
private Date bookedDate;
}
抛出如下错误:
The target class
*.entities.BookedFor
for the properties of the relationshipBookedFor
is missing a property for the generated, internal ID (@Id @GeneratedValue Long id
) which is needed for safely updating properties
注意:如果我像下面这样使用,它会与 neo4j 的内部 ID 建立关系
public interface BookedForRepository extends Neo4jRepository<BookedFor, Long> {}
@RelationshipProperties
public class BookedFor {
@Id
@GeneratedValue
public Long id;
@Property
private Date bookedDate;
}
但这会给数据迁移/数据突变带来不确定性,因为我们依赖于 neo4j 关系实体的内部 ID。如有不妥请指正
任何人都可以帮助以更好的方式进行此操作吗?
此外,如果需要更多说明/详细信息,请发表评论。
您不能直接通过存储库访问关系属性。
这些 classes 只是对关系属性的封装,并不意味着表示“物理”关系或关系实体。
存储库仅用于 @Node
注释 classes。
如果要访问和修改关系的属性,则必须获取关系定义实体。 关系本身始终由其开始和结束节点表示。
最近引入的要求 @Id
仅供内部使用。
如果你有特殊需要在关系中保留一个类似 id 的 属性,它只是 @RelationshipProperties
中的另一个 属性 注释 class.