【问题标题】:Neo4j Spring Boot OGM - saving list of objects in relationshipNeo4j Spring Boot OGM - 保存关系中的对象列表
【发布时间】:2023-03-29 23:21:02
【问题描述】:

我有一个实体“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);

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

【问题讨论】:

    标签: spring-boot neo4j spring-data spring-data-neo4j neo4j-ogm


    【解决方案1】:

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

    【讨论】:

    • 不,它也不适用于深度,只有第一个 TrackObject 也会被保存。
    • 能否请您调试天气是否所有轨道对象都添加到轨道中。
    • 是的,他们都在那里。它们在视图中完美显示。
    • 我认为您正在独立保存两个列表,因此它们不会创建关系。尝试在每个轨道中添加 trackObjects,然后保存轨道。对于(轨道轨道:轨道){对于(轨道对象tobj:track.getObjectList()){track.getobjectList().add(tobj)}trackService.save(轨道); }
    猜你喜欢
    • 1970-01-01
    • 2018-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 1970-01-01
    相关资源
    最近更新 更多