Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring Data/Neo4J在级联存储上指定特定的RelationshipEntity类_Java_Neo4j_Spring Data_Spring Data Neo4j - Fatal编程技术网

Java Spring Data/Neo4J在级联存储上指定特定的RelationshipEntity类

Java Spring Data/Neo4J在级联存储上指定特定的RelationshipEntity类,java,neo4j,spring-data,spring-data-neo4j,Java,Neo4j,Spring Data,Spring Data Neo4j,我有一个对象(它是一个图形节点),它与另一个对象(它也是一个图形节点)有一个一对多的关系。当我持久化第一个对象时,我希望它持久化任何依赖对象并创建适当的关系 这是可行的,但是以这种方式创建的关系是由Spring数据自动生成的,并且它只包含类型。它不会生成我之前定义的RelationshipEntity类的实例,也无法指定我希望它使用的类。它也没有包含在Spring数据维护的LocationHasMany索引中 以下是我的类定义: @NodeEntity public class Location

我有一个对象(它是一个图形节点),它与另一个对象(它也是一个图形节点)有一个一对多的关系。当我持久化第一个对象时,我希望它持久化任何依赖对象并创建适当的关系

这是可行的,但是以这种方式创建的关系是由Spring数据自动生成的,并且它只包含类型。它不会生成我之前定义的RelationshipEntity类的实例,也无法指定我希望它使用的类。它也没有包含在Spring数据维护的LocationHasMany索引中

以下是我的类定义:

@NodeEntity
public class LocationNode {

    private String name;

    @GraphId
    private Long id;

    @RelatedTo(type="HAS_MANY", elementClass=CategoryNode.class, enforceTargetType=true)
    private Set<CategoryNode> categories = new HashSet<CategoryNode>();

}

@NodeEntity
public class CategoryNode {

    private String name;

    @GraphId
    private Long id;

}



@RelationshipEntity(type="HAS_MANY")
public class LocationHasMany {

    @GraphId
    private Long nodeId;

    @StartNode
    private LocationNode location;

    @EndNode
    private CategoryNode category;

}
但我觉得这似乎给我的LocationNode对象添加了不必要的细节,它是使用某种图形层持久化的。似乎注释@RelatedTo应该能够指定在关系创建期间需要使用的特定RelationshipEntity类。此外,在此场景中,我还需要确保在持久化LocationNode之前,所有CategoryNode都已持久化。否则,关系创建将抛出错误。(仍有大量手动依赖项处理)

以前有人遇到过这个问题并解决过吗


我的最后一个解决方案是创建一个自定义存储库实现,然后在该方法中处理所有关系创建/对象持久性。(saveLocationWithDependencies(LocationNode location))但是,我不希望对具有嵌套图形节点的每个对象都这样做。这是一大堆需要维护的额外代码。

我认为您在这里发现了一个问题,在级联过程中没有使用RelationshipEntityType,您能在上提出JIRA问题吗?谢谢。
@NodeEntity
public class LocationNode {

    @RelatedToVia(type="HAS_MANY", elementClass=LocationHasMany.class)
    private Set<LocationHasMany> categories;

}