0

コレクション オブジェクトの異なる関係タイプを取得しようとすると、コレクション プロパティは、関係タイプがコレクション関係タイプでなくても、すべて同じエンティティ タイプを取得します。バグですか?

エンティティ Demo には、 User エンティティを参照する次の 2 つのフィールドが含まれています: user と users

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);
    }




}

「MY_USER」1つと「DEMO_USERS」2つでデモを保存すると問題ありません。しかし、グループIDでデモを見つけると、「DEMO_USERS」は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    
4

1 に答える 1