Java SDN4是否允许集合类型与同一实体的多个关系?

Java SDN4是否允许集合类型与同一实体的多个关系?,java,neo4j,spring-data-neo4j-4,neo4j-ogm,Java,Neo4j,Spring Data Neo4j 4,Neo4j Ogm,当我尝试获取集合对象的不同关系类型时,集合属性将检索所有相同的实体类型,即使关系类型不是集合关系类型。是虫子吗 实体演示包含两个引用用户实体的字段:用户和用户 import java.util.HashSet; import java.util.Set; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.lang.builder.ToStringStyle; import org.

当我尝试获取集合对象的不同关系类型时,集合属性将检索所有相同的实体类型,即使关系类型不是集合关系类型。是虫子吗

实体演示包含两个引用用户实体的字段:用户和用户

import java.util.HashSet;
import java.util.Set;

import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.neo4j.ogm.annotation.NodeEntity;
import org.neo4j.ogm.annotation.Relationship;
import org.neo4j.ogm.annotation.RelationshipEntity;

@NodeEntity
public class Demo extends FormLog implements java.io.Serializable {


    private String name;


    @Relationship(type="MY_USER")
    private User user;

    @Relationship(type="DEMO_USERS")
    private Set<User> users = new HashSet<User>();

    public Demo(){}
    public Demo(String name){
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }



    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }
    public Set<User> getUsers() {
        return users;
    }

    public void setUsers(Set<User> users) {
        this.users = users;
    }
    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
    }




}

这可能就是您遇到的情况:

您应该能够通过使用适当的
@Relationship
注释
setUser
setUsers
方法来解决此问题

如果这没有帮助,请报告一个问题(或添加到上面的问题)

更新: 确认这确实与中描述的问题相同


在解决此问题之前,您需要使对象在两个方向上都可导航。在您的示例中,
User
需要有两个对
Demo
的引用,每个引用都带有相应的
@Relationship

嗨,Luane,这两种用户的关系类型不同,顺便说一句,我使用的是noe4j-ogm-1.1.3我认为这仍然是一个问题,但我会看一看你刚刚记录的那个,并确认它是同一个问题。请参阅更新的答案
@Test
public void test_saveAndFindOne_save2KindsOfUser_NoConfliction(){

    Demo demo = new Demo();

    List<User> user = userService.findUserByNameLike("Hank");

    demo.setUser(user.get(0));

    demo.getUsers().add(user.get(1));
    demo.getUsers().add(user.get(2));

    demo.setName("Set Multiple");


    demo = demoRepository.save(demo);

    System.out.println("Users size =  "+ demo.getUsers().size());
    System.out.println("==========Get Demo from DB ==============");
    Demo db = demoRepository.findOne(demo.getId());
    System.out.println("Users size =  "+ db.getUsers().size());


}
Users size =  2
==========Get Demo from DB ==============
Users size =  3