我有两个节点和一个关系。(:Device)-:WITH_READING {timestamp}->(:RelationshipEntity )为此,我创建了以下2个节点实体和1个RelationshipEntity。当我使用Neo4jSessionFactory.getInstance().getNeo4jSession().save.保存设备NodeEntity时我得到了StackOverFlow错误,因为它只是在Node和RelationshipEntity之间循环运行。
我怎么才能解决这个问题。
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]@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;
}发布于 2021-09-27 21:37:27
因此,我将@Data lombok注释替换为relationshipEntity = :WITH_READING的@Getter和@Setter。现在它工作得很好。不过,我不知道为什么。
https://stackoverflow.com/questions/69349631
复制相似问题