spring data neo4j 6.1.1 Repository Relationship primary_id不允



我有以下neo4j图形模型的关系实体,使用Spring数据neo4j6.1.1来表示关系,如Person-BookedFor->电影,其中我可以为节点存储库(个人,电影(使用UUID字符串,但不能为以下关系实体BookedFor使用。

注:由于neo4j文档描述了该neo4j文档参考

public interface BookedForRepository extends Neo4jRepository<BookedFor, String> {}
@RelationshipProperties
public class BookedFor {
@Id
@GeneratedValue(UUIDStringGenerator.class)
public String rid;
@Property
private Date bookedDate;
}

它抛出如下错误:

关系BookedFor属性的目标类*.entities.BookedFor缺少生成的内部ID(@Id @GeneratedValue Long id(的属性,该属性是安全更新属性所必需的

注意:如果我使用以下内容,它将创建与neo4j 的内部id的关系

public interface BookedForRepository extends Neo4jRepository<BookedFor, Long> {}
@RelationshipProperties
public class BookedFor {
@Id
@GeneratedValue
public Long id;
@Property
private Date bookedDate;
}

但由于我们依赖neo4j关系实体的内部id,这将给数据迁移/数据突变带来不确定性。如果我错了,请纠正我。

春季数据neo4j文件参考

有人能帮忙以更好的方式进行这项工作吗?

此外,如果需要更多澄清/细节,请发表评论。

您不能通过存储库直接访问关系属性。这些类只是对关系上的属性的封装,并不意味着表示"类";物理";关系或更多的关系实体。存储库仅用于@Node注释类。

如果要访问和修改关系的属性,则必须获取关系定义实体。关系本身总是由其起始节点和结束节点表示。

最近引入的必需@Id仅供内部使用。如果您有特殊需要在关系上持久化类似id的属性,那么它将只是@RelationshipProperties注释类中的另一个属性。

相关内容

  • 没有找到相关文章

最新更新