java - 手动添加 NodeEntity、Id、GeneratedValue、RelationshipEntity 等(不使用注释)
问题描述
我有两个 Maven 项目;
a) 一个 REST 服务器项目
b) 一个消耗休息的客户项目
我想制作一个包含域 POJO 类的第三个项目 - 并将其作为依赖项添加到另外两个项目中,因此我只有一个带有域类的项目。但是,REST Server 项目依赖于 org.neo4j.ogm,它使用注释来实现图形持久性(@NodeEntity、@Id、@GeneratedValue、@RelationshipEntity 等)。
显然,我不希望 POJO 项目依赖于任何东西,因为它也将被客户端使用。所以我的问题是;我可以以某种方式手动添加这些设置,而不是使用注释吗?
解决方案
Neo4j-OGM 仅适用于注释,不支持基于 XML 的声明。
这会有点笨拙和有限,但有一种情况可以奏效:
@NodeEntity
如果您使用自动生成的 id 作为Long id
(没有@Id
和@GeneratedValue
注释) ,则没有注释的实体将被识别。- 没有
@RelationshipEntity
定义。 - 所有关系都是传出的,它们的名称应该从它们的字段名称派生出来。(例如
List<User> friends
会变成类似的东西(...)-[:FRIENDS]->(:User)
) - 不使用其他 Neo4j-OGM 注释,如
@Property
,@Convert
等。
推荐阅读
- python - 如何在全局级别定义各种变量
- python - For循环(嵌套):如何遍历两列?
- python - 为什么在尝试将输入浮点数附加到数组时出现错误?
- python - 有没有更简单的方法可以在 discord.py 机器人中获取用户的用户名?
- sql - 为投资者分类交易阶段
- python - ValueError:层顺序的输入 0 与层不兼容::预期 min_ndim=4,发现 ndim=3。收到的完整形状:(无,1024,3)
- python - python将json转换为仅显示列表
- javascript - 如何在 React 中强制重新渲染表单中的输入字段?
- django - 如何以 django 方式交换 Postgresql 的主节点?
- tidymodels - usemodels 包中的 xgboost 代码片段将 one_hot 设置为 TRUE 是否有原因?