Java SDN5:为(14762)-[CONTAINS]->;找到多个匹配的@RelationshipEntity;(14781)但不知道该用哪一个

Java SDN5:为(14762)-[CONTAINS]->;找到多个匹配的@RelationshipEntity;(14781)但不知道该用哪一个,java,neo4j,neo4j-ogm,spring-data-neo4j-5,spring-data-neo4,Java,Neo4j,Neo4j Ogm,Spring Data Neo4j 5,Spring Data Neo4,我创建了两个不同类型的Spring数据Neo4j 5@RelationshipEntity: @RelationshipEntity(type = "CONTAINS") public class CharacteristicRelationship { @Id @GeneratedValue private Long id; @StartNode private CharacteristicGroup characteristicGroup;

我创建了两个不同类型的Spring数据Neo4j 5
@RelationshipEntity

@RelationshipEntity(type = "CONTAINS")
public class CharacteristicRelationship {

    @Id
    @GeneratedValue
    private Long id;

    @StartNode
    private CharacteristicGroup characteristicGroup;

    @EndNode
    private Characteristic characteristic;

}

@RelationshipEntity(type = "CONTAINS")
public class DecisionGroupRelationship {

    @Id
    @GeneratedValue
    private Long id;

    @StartNode
    private Decision decision;

    @EndNode
    private DecisionGroup childGroup;

}
一切正常,我成功通过了所有测试,但目前我在控制台中不断出现以下错误:

2018-04-29 15:36:52.387 ERROR 7664 --- [           main] org.neo4j.ogm.context.GraphEntityMapper  : Found more than one matching @RelationshipEntity for (14762)-[CONTAINS]->(14781) but cannot tell which one to use
2018-04-29 15:36:52.390 ERROR 7664 --- [           main] org.neo4j.ogm.context.GraphEntityMapper  : Found more than one matching @RelationshipEntity for (14762)-[CONTAINS]->(14779) but cannot tell which one to use
2018-04-29 15:36:52.391 ERROR 7664 --- [           main] org.neo4j.ogm.context.GraphEntityMapper  : Found more than one matching @RelationshipEntity for (14762)-[CONTAINS]->(14774) but cannot tell which one to use
我做错了什么?如何修复?是否允许具有相同类型的不同
@RelationshipEntity

org.neo4j.ogm.context.GraphEntityMapper.getRelationshipEntity(Edge)
中,我可以看到以下代码:

} else {
    // almost definitely a user bug
    logger.error("Found more than one matching @RelationshipEntity for {} but cannot tell which one to use",
    edge.toString());
 }
只需打印错误日志就可以了。这真的很难理解-这是一个错误或没有,以及如何处理它

课程包括:

@NodeEntity
public class CharacteristicGroup extends BaseEntity {

    private static final String DEFINED_BY = "DEFINED_BY";
    private static final String CONTAINS = "CONTAINS";

    @Index(unique = true)
    private Long id;

    @Index(unique = false)
    private String name;

    @Index(unique = false)
    private String lowerName;

    @Relationship(type = DEFINED_BY, direction = Relationship.OUTGOING)
    private Set<DecisionGroup> decisionGroups;

    @Relationship(type = CONTAINS, direction = Relationship.OUTGOING)
    private Set<CharacteristicRelationship> characteristicRelationships;

...

}

@NodeEntity
public class Characteristic extends BaseEntity {

    private static final String CONTAINS = "CONTAINS";

    @Index(unique = true)
    private Long id;

    @Index(unique = false)
    private String name;

    @Index(unique = false)
    private String lowerName;

    @Relationship(type = CONTAINS, direction = Relationship.OUTGOING)
    private Set<CharacteristicProperty> properties;

    @Relationship(type = CONTAINS, direction = Relationship.INCOMING)
    private Set<CharacteristicRelationship> characteristicRelationships;

...

}

@NodeEntity
public class DecisionGroup extends BaseEntity {

    private static final String CONTAINS_DECISION_GROUP = "CONTAINS_DECISION_GROUP";

    @Index(unique = true)
    private Long id;

    @Index(unique = false)
    private String name;

    @Index(unique = false)
    private String lowerName;

    @Relationship(type = CONTAINS_DECISION_GROUP, direction = Relationship.INCOMING)
    private Set<DecisionGroupRelationship> decisionGroupRelationships;

    @Index(unique = false)
    private int totalChildDecisions;

...

}

@NodeEntity
public class Decision extends BaseEntity {

    private static final String DEFINED_BY = "DEFINED_BY";
    private static final String CONTAINS = "CONTAINS";
    private static final String CONTAINS_DECISION_GROUP = "CONTAINS_DECISION_GROUP";
    public static final String FOLLOWS = "FOLLOWS";

    @Index(unique = true)
    private Long id;

    @Index(unique = false)
    private String name;

    @Index(unique = false)
    private String lowerName;

    @Relationship(type = CONTAINS, direction = Relationship.INCOMING)
    private Set<DecisionGroup> parentGroups;

    @Relationship(type = CONTAINS_DECISION_GROUP, direction = Relationship.OUTGOING)
    private Set<DecisionGroupRelationship> childGroupRelationships;

    @Relationship(type = DEFINED_BY, direction = Relationship.INCOMING)
    private Set<Media> medias;

    @Index(unique = false)
    private int totalViews;

...

}

@NodeEntity
public abstract class BaseEntity implements BaseEntityVisitable {

    private static final String CREATED_BY = "CREATED_BY";
    private static final String UPDATED_BY = "UPDATED_BY";
    private static final String OWNED_BY = "OWNED_BY";
    private static final String CONTAINS = "CONTAINS";

    @Id
    @GeneratedValue
    private Long graphId;

    @Index(unique = true)
    private String uuid;

    @Index(unique = true)
    private String customId;

    @DateLong
    @Index(unique = false)
    private Date createDate;

    @Relationship(type = CREATED_BY, direction = Relationship.OUTGOING)
    private User createUser;

    @DateLong
    @Index(unique = false)
    private Date updateDate;

    @Relationship(type = UPDATED_BY, direction = Relationship.OUTGOING)
    private User updateUser;

    @Relationship(type = OWNED_BY, direction = Relationship.OUTGOING)
    private Set<BaseEntity> ownerEntities;

    @Relationship(type = CONTAINS, direction = Relationship.OUTGOING)
    private Set<Translation> translations;

...

}
@NodeEntity
公共类CharacteristicGroup扩展BaseEntity{
私有静态最终字符串DEFINED_BY=“DEFINED_BY”;
私有静态最终字符串CONTAINS=“CONTAINS”;
@索引(唯一=真)
私人长id;
@索引(唯一=假)
私有字符串名称;
@索引(唯一=假)
私有字符串lowerName;
@关系(类型=定义人,方向=关系。传出)
私有集决策组;
@关系(类型=包含,方向=关系。传出)
私人关系;
...
}
@节点性
公共类特征扩展了BaseEntity{
私有静态最终字符串CONTAINS=“CONTAINS”;
@索引(唯一=真)
私人长id;
@索引(唯一=假)
私有字符串名称;
@索引(唯一=假)
私有字符串lowerName;
@关系(类型=包含,方向=关系。传出)
私有集属性;
@关系(类型=包含,方向=关系。传入)
私人关系;
...
}
@节点性
公共类DecisionGroup扩展了BaseEntity{
私有静态最终字符串包含\u DECISION\u GROUP=“包含\u DECISION\u GROUP”;
@索引(唯一=真)
私人长id;
@索引(唯一=假)
私有字符串名称;
@索引(唯一=假)
私有字符串lowerName;
@关系(类型=包含决策组,方向=关系。传入)
私有集决策组关系;
@索引(唯一=假)
私人决定;
...
}
@节点性
公共类决策扩展BaseEntity{
私有静态最终字符串DEFINED_BY=“DEFINED_BY”;
私有静态最终字符串CONTAINS=“CONTAINS”;
私有静态最终字符串包含\u DECISION\u GROUP=“包含\u DECISION\u GROUP”;
公共静态最终字符串FOLLOWS=“FOLLOWS”;
@索引(唯一=真)
私人长id;
@索引(唯一=假)
私有字符串名称;
@索引(唯一=假)
私有字符串lowerName;
@关系(类型=包含,方向=关系。传入)
私有集父组;
@关系(类型=包含决策组,方向=关系。传出)
私人关系;
@关系(类型=定义者,方向=关系。传入)
专用媒体;
@索引(唯一=假)
私人观点;
...
}
@节点性
公共抽象类BaseEntity实现BaseEntityVisitable{
私有静态最终字符串CREATED_BY=“CREATED_BY”;
私有静态最终字符串UPDATED_BY=“UPDATED_BY”;
私有静态最终字符串OWNED_BY=“OWNED_BY”;
私有静态最终字符串CONTAINS=“CONTAINS”;
@身份证
@生成值
私人长格拉皮德;
@索引(唯一=真)
私有字符串uuid;
@索引(唯一=真)
私有字符串customId;
@长久的
@索引(唯一=假)
私人日期;
@关系(类型=创建人,方向=关系。传出)
私有用户;
@长久的
@索引(唯一=假)
私人日期更新日期;
@关系(类型=更新者,方向=关系。传出)
私有用户更新器;
@关系(类型=所有者,方向=关系。传出)
私人设置所有权;
@关系(类型=包含,方向=关系。传出)
私有集翻译;
...
}

请显示
特征组
特征
决策组
、和
决策
@cmosher01的源代码我已经用提到的类更新了问题顺便说一句,我已经通过将第二个关系实体类型重命名为唯一的类型(包含决策组)解决了问题但有趣的是,为什么它不能正常使用相同的类型。您正在请求哪些数据,您正在请求哪些数据?