无法在具有不同属性的两个相同节点之间创建重复关系

问题描述

我在我的Spring Boot Java gradle应用程序中使用反应性neo4j连接到Neo4j数据库我有两个节点和一个属性的关系。因此,当我提供映射以在同一两个节点之间创建两个关系时,只有一个关系仅在数据库中创建。关系是在代码部分中最新创建的。是否有任何特定的解决方案,可以使用Java应用程序中的Reactive Neo4j-OGM在具有不同属性的两个相同节点之间创建重复关系。

@RelationshipProperties
public class CountryVisited{
    private boolean isHomeCountry;

   
    public boolean isHomeCountry() {
        return isHomeCountry;
    }

    public void setHomeCountry(boolean homeCountry) {
        isHomeCountry = homeCountry;
    }
}

@Node
public class Country {
 @Id
    @GeneratedValue
    private Long id;
    private String name;

   
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

 public String getName() {
        return name;
    }

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

}

@Node
public class Member {
    @Id
    @GeneratedValue
    private Long id;
    private String memberId;
    private String firstName;
    private String middleName;
    private String lastName;

    @Relationship(value = "countryVisited",direction = Relationship.Direction.OUTGOING)
    private Map<Country,CountryVisited> countryVisited= new HashMap<>();

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getCountryVisited() {
        return countryVisited;
    }

    public void setCountryVisited(String countryVisited) {
        this.countryVisited= countryVisited;
    }
public String getMemberId() {
        return memberId;
    }

    public void setMemberId(String memberId) {
        this.memberId = memberId;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getMiddleName() {
        return middleName;
    }

    public void setMiddleName(String middleName) {
        this.middleName = middleName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
}

public interface MemberRepository extends ReactiveNeo4jRepository<Member,Long> {

    Mono<Member> findByMemberId(String memberId);
}



   @Autowired
    MemberRepository memberRepository;
    
    Member member = new Member();
    Map<Country,CountryVisited> countryVisitedMap= new HashMap<>();
    Country country1= new Country();
    country1.setName("India");
    
    CountryVisited countryVisited =new CountryVisited();
    countryVisited.setHomeCountry(true);
            countryVisitedMap.put(country1,countryVisited);
    
Country country2= new Country();
    country2.setName("India");
    CountryVisited countryVisited2 =new CountryVisited();
    countryVisited2.setHomeCountry(false);
            countryVisitedMap.put(country2,countryVisited2);
    member.SetCountryVisited(countryVisitedMap);
    
    memberRepository.save(member).block();

我想保存一个值为true的关系,另一个为false的关系,但是只保存一个值为false的关系。请帮助我。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)