第一点是我使用的是 orientdb 版本 2.1.7。
我尝试用orientdb实现一个包含jpa的项目。如本 doc 中所述自动加载、保存和删除适用于简单的 POJO。
但是有两点没有解决。
- 我想让特性变得独一无二。我知道当我像这样以编程方式执行此操作时它会起作用:
OrientVertexType vertexType = graph.createVertexType(vertexName); vertexType.createProperty("id", OType.STRING); vertexType.createIndex("ididx", OClass.INDEX_TYPE.UNIQUE, "id");
但是有没有办法通过注释来做到这一点? JPA 注释 (@Column(unique = true, nullable = false)) 似乎不起作用。
- 我有两个通过边连接的 VertexType。我还希望该集合通过注释自动加载。示例(未列出 getter 和 setter): 用户对象:
public class MyUser implements iMyUser {
private String id;
private String name;
private Set<MyGroup> groups;
...
}
组对象:
public class MyGroup implements iMyGroup {
private String name;
private String id;
...
}
在 JPA 中,您可以添加类似 @JoinTable(name = "table", joinColumns = { @JoinColumn(name = "colname") }, inverseJoinColumns = { @JoinColumn(name = "colname") })
的内容到 MyUser 中的 groups 属性,以及当您调用方法 getGroups()
时你得到有关系的组。 orientdb 中是否有支持这种行为的注释?
我认为this (@Adjacency) 可能是一个解决方案,但到目前为止我还没有成功实现它。
还有支持注释的列表或其他内容吗?
问候, foo
最佳答案
第二点可以通过tinkerpop框架实现。 @Adjacency注解用于对象和@之间的直接关系GremlinGroovy以便查询。在界面上添加注释有点奇怪,但它确实有效。
对于第一点,通过注释可能无法解决,但您可以通过orientdb后端创建唯一索引。
关于java - 使用orientdb注解自动填充Pojo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34726266/