首页 > 解决方案 > 手动添加 NodeEntity、Id、GeneratedValue、RelationshipEntity 等(不使用注释)

问题描述

我有两个 Maven 项目;

a) 一个 REST 服务器项目

b) 一个消耗休息的客户项目

我想制作一个包含域 POJO 类的第三个项目 - 并将其作为依赖项添加到另外两个项目中,因此我只有一个带有域类的项目。但是,REST Server 项目依赖于 org.neo4j.ogm,它使用注释来实现图形持久性(@NodeEntity、@Id、@GeneratedValue、@RelationshipEntity 等)。

显然,我不希望 POJO 项目依赖于任何东西,因为它也将被客户端使用。所以我的问题是;我可以以某种方式手动添加这些设置,而不是使用注释吗?

标签: javaspring-data-neo4jneo4j-java-api

解决方案


Neo4j-OGM 仅适用于注释,不支持基于 XML 的声明。

这会有点笨拙和有限,但有一种情况可以奏效:

  • @NodeEntity如果您使用自动生成的 id 作为Long id(没有@Id@GeneratedValue注释) ,则没有注释的实体将被识别。
  • 没有@RelationshipEntity定义。
  • 所有关系都是传出的,它们的名称应该从它们的字段名称派生出来。(例如List<User> friends会变成类似的东西(...)-[:FRIENDS]->(:User)
  • 不使用其他 Neo4j-OGM 注释,如@Property,@Convert等。

推荐阅读