Neo4j Spring Boot OGM - 保存关系中的对象列表

Posted

技术标签:

【中文标题】Neo4j Spring Boot OGM - 保存关系中的对象列表【英文标题】:Neo4j Spring Boot OGM - saving list of objects in relationship 【发布时间】:2019-01-13 12:47:44 【问题描述】:

我有一个实体“Track”,它与跟踪对象列表 (TrackObject) 有关系。 我有一个要保存到 Neo4j 数据库的曲目列表,每个曲目都有一个 TrackObject 列表。 每个轨道都得到完美保存,但只有第一个 TrackObject 得到保存。 有没有办法直接保存所有内容? 这是赛道:

@NodeEntity (label="Track")
 public class Track 

 @Id
 @GeneratedValue
 private Long id;
 Integer number;
 String name;

 @Relationship (type = "IS_IN", direction=Relationship.INCOMING)
 List<TrackObject> objectList;

我得到我的曲目列表并对其进行迭代:

for (Track track : tracks) 
            trackService.saveTrack(track);
            for (TrackObject tobj : track.getObjectList()) 
                trackService.saveTrackObject(tobj);

我也尝试使用“saveAll”和 Iterable,它适用于轨道,但不适用于轨道对象列表。

Iterable<Track> tracks = newImport.getTracks();
     trackService.saveTracks(tracks);

我做错了什么? 谢谢你的回答。

【问题讨论】:

【参考方案1】:

保存函数中有一个深度属性,其语法如下 无效保存(T对象,int深度); 请试试这个。

【讨论】:

不,它也不适用于深度,只有第一个 TrackObject 也会被保存。 能否请您调试天气是否所有轨道对象都添加到轨道中。 是的,他们都在那里。它们在视图中完美显示。 我认为您正在独立保存两个列表,因此它们不会创建关系。尝试在每个轨道中添加 trackObjects,然后保存轨道。对于(轨道轨道:轨道)对于(轨道对象tobj:track.getObjectList())track.getobjectList().add(tobj)trackService.save(轨道);

以上是关于Neo4j Spring Boot OGM - 保存关系中的对象列表的主要内容,如果未能解决你的问题,请参考以下文章

当我尝试使用 Hibernate ogm 和 spring boot 时,控制台给出“无法实例化命名策略类”错误

spring boot 2.0 neo4j 使用

转发:Spring Boot 访问Neo4j

hello spring boot neo4j

如何使用Spring Boot获取节点链(Neo4j)

使用 Spring Boot 和嵌入式驱动程序测试 Neo4j