是否有选项使用arangodb-spring-data在edge中添加不同的集合

flseospp  于 2022-12-09  发布在  Go
关注(0)|答案(1)|浏览(109)

在arangoDB中,我们可以创建一个边,在其中我们可以将@from和@to设置为不同的集合,因为这些都是json数据。在ArangoDB-Spring-Data库中,我们可以创建一个边,并且我们必须提供类型给@from和@to。我想使用相同的边在不同的集合之间添加关系。例如-我有一个类EntitywithKey-

public class EntityWithKey {
     @Id
     protected String id;
}

我有2个类扩展EntityWIthKey

@Document("actors")
@HashIndex(fields = { "name", "surname" }, unique = true)
public class Actor extends EntityWithKey{
     private String name;
     private String surname;
}

@Document("characters")
@HashIndex(fields = { "name", "surname" }, unique = true)
public class Character extends EntityWithKey {
     private String name;
     private String surname;
}

我想创建一个边缘,如下图所示-

@Edge
public class ChildOf {
     @Id
     private String id;
     @From
     private EntityWithKey child;
     @To
     private EntityWithKey parent;
}

所以我可以添加演员-演员,演员-角色,角色-角色和角色-演员之间的关系。
但我看到错误nested exception is org.springframework.data.mapping.PropertyReferenceException: No property name found for type EntityWithKey!
这个库有什么办法可以做到这一点吗?

ddarikpa

ddarikpa1#

我已经解决了这个问题。边缘必须用java泛型创建-

@Edge
public class ChildOf<T1,T2> {
     @Id
     private String id;
     @From
     private T1 child;
     @To
     private T2 parent;
}

现在我可以添加任意两个单边关系的连接器

相关问题