【问题标题】:Manually add NodeEntity, Id, GeneratedValue, RelationshipEntity etc (not using annotations)手动添加 NodeEntity、Id、GeneratedValue、RelationshipEntity 等(不使用注释)
【发布时间】:2020-02-26 10:49:48
【问题描述】:

我有两个 Maven 项目;

a) 一个 REST 服务器项目

b) 一个消耗 Rest 的客户端项目

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

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

【问题讨论】:

    标签: java spring-data-neo4j neo4j-java-api


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-17
      • 2011-09-02
      • 2018-04-29
      • 1970-01-01
      • 2016-07-21
      • 1970-01-01
      • 2020-02-27
      相关资源
      最近更新 更多