簡體   English   中英

關系未保存在 SDN 6(Spring 數據 neo4j)中

[英]Relationship not saved in SDN 6 (Spring data neo4j)

您好,在保存與 NEO4J 和 Spring 的關系時遇到問題,當我不使用帶有 @RelationProperties 的@RelationProperties時,我可以保存關系,但是每當我想使用 class 時,甚至都不會創建關系。

我在 docker 容器中使用 Neo4j 4.3.7-社區版 在我的 pom.xml 中我有

        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-neo4j</artifactId>
            <version>6.1.5</version>
        </dependency>

我想做這樣的事情

我有這段代碼:

起始節點

...
    @Relationship(type = "VISITS",direction = Relationship.Direction.OUTGOING)
    public Set<Visits> visits;

    public void visitPOI(Visits visit) {
        if(visits == null) {
            visits = new HashSet<>();
        }
        visits.add(visit);
    }
...

我的關系

@RelationshipProperties
public class Visits {
    @Id @GeneratedValue
    private long id;

    @Property private String description;

    @TargetNode private PointOfInterest poi;

    public Visits(String description, PointOfInterest p){
        this.description = description;
        this.poi = p;
    }
...

和目標節點

...
@Node
public class PointOfInterest {

    @Id @GeneratedValue(generatorClass = UUIDStringGenerator.class)
    private String id;



    @Property private String name;
    @Property private double lat;
    @Property private double lng;

    public PointOfInterest() { }

//getters and setters
...

這在服務中

...
    public void saveRelation(String username, Visits v ){

        User u = userRepository.findByUserName(username);

        Optional<PointOfInterest> poi = pointOfInterestRepository.findById(v.getPoi().getId());
        v.setPoi(poi.get());
        u.visitPOI(v);
        userRepository.save(u);
    }
...

和我發布的 JSON

{
    "description":"Nice trip",
    "poi":{
        "id":"Uster"
    }
}

@RelationshipId的 id 字段上使用@RelationshipProperties如下

@RelationshipProperties
public class Visits {
    @RelationshipId
    private long id;

    @Property private String description;
    .....
}

我在使用@RelationshipProperty注釋 class 持久化關系屬性時遇到了同樣的問題。最后,我發現問題是由於 long 和 Long 之間的隱式轉換引起的。 更改@RelationshipId private long id; @RelationshipId private Long id; @RelationshipProperty注釋為 class 就可以了。 這似乎是 SDN 中的一個錯誤,它應該報告錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM