gpt4 book ai didi

java - Stackoverflow-在 OGM 中加载 RelationshipEntity 时出现异常

转载 作者:行者123 更新时间:2023-12-02 11:54:01 25 4
gpt4 key购买 nike

我有以下类(class):

@NodeEntity
public class Item{
//...
}

@RelationshipEntity(type = "HAS")
public class HasRelation{
//...
@StartNode
private User user;

@EndNode
private Item item;
}

@NodeEntity
public class User{
//...
@Relationship(type="HAS")
private Set<HasRelation> has;
}

现在我有一个 ID 为 1 的用户 Sven,在数据库中有一个项目 Hammer 并且想要加载它。当我调用 OGM session.load(User.class, 1) 时,我总是收到 Stackoverflow-Exception,因为用户持有关系,持有用户,持有关系,等等。这对我来说使用 OGM 的方式是错误的,我不想将加载的深度限制为 0。然而,OGM 规范告诉我,没有其他方法,因为 RelationshipEntity 需要 StartNode 和 EndNode,并且必须在其中之一中引用。所以除了将 Loading-Depth 限制为 0 之外,我没有找到其他方法来防止此异常。有更好的办法吗?

最佳答案

您将数据公开为 JSON。转换器还需要遍历“对象树”,这会导致堆栈溢出。

解决方案很简单:您在 User 类中定义传出关系,因此当 jackson lib 命中该关系时,不需要再次访问该对象。

@RelationshipEntity(type = "LIKES")
public class LikedBook {

@Id
@GeneratedValue
private Long id;

private String how;

@StartNode
@JsonIgnore // <- "do not go back"
private User user;

@EndNode
private Book book;

关于java - Stackoverflow-在 OGM 中加载 RelationshipEntity 时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47715472/

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