java在SpringDataNeo4j中使用RelationshipEntity保存节点的正确方法是什么?
实际上,我正试图用RelationshipEntity类保存一个节点,如下所示:
节点类
@NodeEntity public class MyEvent { @GraphId private Long nodeId; @RelatedToVia(type = "INVITED_TO") @Fetch Set<EventResponse> eventResponse; }
关系实体类
@RelationshipEntity(type="INVITED_TO") public class EventResponse implements Serializable { @GraphId Long nodeId; @StartNode MyEvent event; @EndNode User user; // .....
}
当我试图保存MyEvent
org.neo4j.graphdb.NotFoundException: '__type__' property not found for RelationshipImpl #153 of type 15 between Node[159] and Node[117].
因此,我猜想基于上述异常,它缺少__type__
属性,该属性是标识任何节点类型所必需的。我不太明白,我们有没有办法先保存第一个关系实体,然后再保存第二个关系实体,或者同时保存第二个关系实体
# 1 楼答案
类型属性不需要由您显式设置。它由spring-data-neo4j管理
以下代码片段适合我:
事件类:
用户类:
以及回应类:
我在一个简短的junit测试中使用了它们: