gpt4 book ai didi

java - Spring Data Neo4J 4 - 没有 template.fetch()

转载 作者:搜寻专家 更新时间:2023-11-01 03:48:52 24 4
gpt4 key购买 nike

我正在尝试从 Spring Data Neo4J 3 升级到 4 - 我正在使用 Neo4J 2.2.2。

我使用 GraphRepository 实例查询数据库,取回一个对象。

此对象有多个关系,未获取(故意避免读取整个图表)。

在 SDN3 代码中,仅使用 Neo4JTemplate 类为我需要获取的每个关系执行获取调用。这非常有效。

但是,在 SDN4 中,此功能已被删除,取而代之的是 load() 方法的各种实现。从文档中不清楚如何实现我在 SDN3 中所做的。

需要明确的是:如果我检索的第一个类中有一组对象,由关系控制,我只想检索该组中的对象,而不是数据库中这些对象的整个集合。

我在升级过程中是否遗漏了一些重要的东西,或者是否有一种简单的方法可以完成我想做的事情?

添加代码:

我的实体类:

@NodeEntity
public class File implements MetroNode {

private Long id;

private String fileName;

private SourceState sourceState;

private Set<State> states;

@GraphId
public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getFileName() {
return fileName;
}

public void setFileName(String fileName) {
this.fileName = fileName;
}

@Relationship(type = "HAS_FILE", direction = Relationship.INCOMING)
public SourceState getSourceState() {
return sourceState;
}

public void setSourceState(SourceState sourceState) {
this.sourceState = sourceState;
}

public State addState(MetroNode otherNode, StateStatus status) {
if (this.states == null) {
this.states = new HashSet<State>();
}
State state = new State(this, otherNode, status.toString());
this.states.add(state);
return state;
}

@Relationship(type = "HAS_STATE", direction = Relationship.OUTGOING)
public Set<State> getStates() {
return states;
}

public State getActiveState() {
if (this.states != null) {
for (State state : this.states) {
if (state.isActive()) {
return state;
}
}
}
return null;
}

}

我的存储库类:

public interface FileRepository extends GraphRepository<File> {

File findByFileName(String fileName);
}

当执行 getActiveState() 方法时,我得到一个 null 返回值,因为状态集是空的(尚未获取)。

再看看我的代码,我想知道是不是因为我没有使用存储库中的“ native ”加载方法,而是重载版本?

最佳答案

SDN 4 允许您使用 persistence horizon 控制相关实体的加载.

加载深度为 0 的实体将获取该实体的属性,而不是相关实体。深度 1 将获取第一级相关实体,但不获取它们的关系等。

不支持按关系类型控制深度。

关于java - Spring Data Neo4J 4 - 没有 template.fetch(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34286713/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com