【发布时间】:2013-09-19 13:35:54
【问题描述】:
我正在尝试将 neo4j 跨存储持久性用于某种设置的数据结构。在 jpa 和 neo4j 之间的边界处,它包含一个引用 jpa 实体的 NodeEntity。因此,neo4j 对象仅包含 jpa-object 的 id 作为参考。
在 mongodb 跨存储持久性和 neo4j 持久性的混合语法中,这可能看起来像这样:
@NodeEntity
public class MyNode {
@GraphId
Long id;
@RelatedTo
MyEntity entity;
... //setters and setters omitted
}
@Entity
public class MyEntity {
@Id @GeneratedValue
Long id;
String name;
... //getters and setters omitted
}
似乎这种跨存储持久化是用spring-data-neo4j做不到的。唯一支持的形式似乎是使用 @NodeEntity("partial=true") ,这需要一个与包含 jpa id 的 neo4j 对象具有相同 ID 的 jpa 表。
在我看来,现在实现类似这样的一种可行方法是拦截从 neo4j 中的检索和保存,例如:
- 加载 jpa 对象时,通过读取 neo4j id 字段并将 jpa 对象注入(neo4j 瞬态)字段来加载
- 保存 jpa 对象时,将保存 id 到 neo4j id 字段
那么我对 sping-data-neo4j 的能力有什么误解吗?
这似乎是一种可行的方法吗?
有没有办法给 spring-data-neo4j 添加过滤器?我不知何故找不到任何东西。或者是否有可能在弹簧数据甚至弹簧级别进行过滤,这可能会有所帮助?
我并不完全是弹簧专家,所以任何提示都可能会有所帮助。
【问题讨论】:
标签: spring neo4j spring-data spring-data-jpa spring-data-neo4j