我遇到了Spring的@Fetch注释问题。我的模型与所讨论的模型here非常相似,给出的例子非常有效。这是我的模型的样子:
@NodeEntity
public class Person {
@Indexed
private String name;
@Fetch
@RelatedTo(type="OWNS", direction=Direction.OUTGOING) //or no direction, same thing
private Set<Car> cars;
}
@NodeEntity
public class Car {
@Indexed
private String description;
@RelatedTo(type="OWNS", direction=Direction.INCOMING)
private Person person;
}
上一个问题和我的模型之间的唯一区别是@Fetch
注释。如果您希望Spring在使用存储库时获取此字段的内容,则必须使用它。不幸的是,这会导致String进入循环,一遍又一遍地创建相同的两个对象的新实例,直到它打击堆。我似乎无法解决这个问题,无论我做什么,我要么陷入循环,要么我没有从存储库中获取任何东西。
在网上几乎没有提到这一点。我在想我正在搜索错误的东西,因为这似乎是一个非常常见的用例。有解决方法吗?
修改
可能相关:我使用的是独立的Neo4j服务器,因此SDN正在通过HTTP运行。我已经注意到了除了这个之外我还在开发的一些其他奇怪的,未提及的行为。我开始认为SDN的HTTP支持是罪魁祸首,拥有独立的Neo4j服务器在某种程度上是一件奇怪的事情。几乎所有使用Spring和Neo4j的示例/教程都使用嵌入式服务器。