首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NEO4J-OGM。错误:将@NodeEntity与其各自的@RelationshipEntity一起保存会导致堆栈溢出(StackOverflowError: null) -陷入循环

NEO4J-OGM。错误:将@NodeEntity与其各自的@RelationshipEntity一起保存会导致堆栈溢出(StackOverflowError: null) -陷入循环
EN

Stack Overflow用户
提问于 2021-09-27 15:52:33
回答 1查看 42关注 0票数 0

我有两个节点和一个关系。(:Device)-:WITH_READING {timestamp}->(:RelationshipEntity )为此,我创建了以下2个节点实体和1个RelationshipEntity。当我使用Neo4jSessionFactory.getInstance().getNeo4jSession().save.保存设备NodeEntity时我得到了StackOverFlow错误,因为它只是在Node和RelationshipEntity之间循环运行。

我怎么才能解决这个问题。

代码语言:javascript
复制
Caused by: java.lang.StackOverflowError: null
at java.base/java.util.HashSet.iterator(HashSet.java:173) ~[na:na]
at java.base/java.util.AbstractSet.hashCode(AbstractSet.java:120) ~[na:na]
at com.path.Device.hashCode(Device.java:12) ~[classes/:na]
at com.path.DeviceReading.hashCode(DeviceReading.java:13) ~[classes/:na]
at java.base/java.util.AbstractSet.hashCode(AbstractSet.java:124) ~[na:na]
at com.path.Device.hashCode(Device.java:12) ~[classes/:na]
at com.path.DeviceReading.hashCode(DeviceReading.java:13) ~[classes/:na]
at java.base/java.util.AbstractSet.hashCode(AbstractSet.java:124) ~[na:na]
at com.path.Device.hashCode(Device.java:12) ~[classes/:na]
at com.path.DeviceReading.hashCode(DeviceReading.java:13) ~[classes/:na]
at java.base/java.util.AbstractSet.hashCode(AbstractSet.java:124) ~[na:na]
at com.path.Device.hashCode(Device.java:12) ~[classes/:na]
at com.path.DeviceReading.hashCode(DeviceReading.java:13) ~[classes/:na]
at java.base/java.util.AbstractSet.hashCode(AbstractSet.java:124) ~[na:na]
代码语言:javascript
复制
@AllArgsConstructor
@NodeEntity(label = "Device")
public class Device {
    @Index
    @Id
    @Property(name="deviceId")
    private String id;

    public Device(String id) {
        this.id = id;
    }

    @Relationship(type = "WITH_READING")
    Set<DeviceReading> deviceReadings;
}


@Data
@AllArgsConstructor
@RelationshipEntity(type = "WITH_READING")
public class DeviceReading {
    private Long id;
    
    @Property(name = "timestamp")
    private long timestamp;

    @JsonIgnore
    @StartNode
    private Device device;
    @EndNode
    private Reading reading;
}


@AllArgsConstructor
@NodeEntity(label = "SensorReading")
public class Reading {
    @Id
    @Property(name="id")
    @GeneratedValue(strategy = UuidGenerator.class)
    @Convert(UUIDConvertor.class)
    private UUID id;

    @Property(name="isExtrapolated")
    private boolean extrapolated;
}
EN

回答 1

Stack Overflow用户

发布于 2021-09-27 21:37:27

因此,我将@Data lombok注释替换为relationshipEntity = :WITH_READING的@Getter和@Setter。现在它工作得很好。不过,我不知道为什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69349631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档