gpt4 book ai didi

java - SDN : How to map a collection of nodes to a @NodeEntity class member?

转载 作者:行者123 更新时间:2023-12-02 01:52:23 25 4
gpt4 key购买 nike

我有一个图表,其中包括:

(用户)-[:MEMBER_OF]->(组)

(用户)-[:MEMBER_OF]->(经理)-[:MANAGES]->(组)

在应用程序中我有这样的类(class):

@NodeEntity
public class UserEntity {
@Property
private Long id;

@Relationship(type = "MEMBER_OF", direction = Relationship.OUTGOING)
private List<GroupEntity> memberInGroups;

private List<GroupEntity> managesGroups;
}

在存储库中,我有一种获取用户的方法,如下所示:

@Query("match (u:User{id:{id}) " +
"optional match (u)-[:MEMBER_OF]->(g:Group) " +
"optional match (u)-[:MEMBER_OF]->(s:Managers)-[:MANAGES]->(m:Group) " +
"return u,collect(g) as memberInGroups,collect(m) as managesGroups")
Optional<UserEntity> findById(Long id);

问题是此查询在浏览器中正确返回结果,这意味着我有一些memberInGroups 和managesGroups 的值(非空)。

但是,当我通过应用程序进行调用时,我按预期填写了memberInGroups,但managesGroups 为空。

我认为这是一个映射问题,因为 ManagesGroups 没有关系注释,也没有属性注释。

有没有办法让 ManagesGroups 值在 UserEntity 对象中正确显示?

最佳答案

您只能将一个类中的相同关系类型映射到不同的目标类型/类 ( docs )。当然,您仍然需要其他关系定义上的注释。

在您的具体情况下,还有另一个问题:您不能“跳过”图中的关系/节点并让它映射到实体。实现此目的的一个解决方案是对 Managers 以及此类中的 Group 关系进行建模。然后,还必须在自定义查询中命名并返回关系。

关于java - SDN : How to map a collection of nodes to a @NodeEntity class member?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57419327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com