我有一个看起来像这样的课
@Data
@NodeEntity
public class StoryCharacter {
@Index(unique = true)
private String agnosticId;
private String name;
@Relationship(type = "FAMILIAR_WITH")
private Set<StoryCharacter> acquaintances;
}
我需要一个与默认long
无关的自定义ID。因此,我引入了一个字段并将其设置为index
。
但是如何通过该ID查找对象?
我想这样做
session.openSession().load(StoryCharacter.class, "custom_id")
,但失败,并显示错误消息,该错误必须为Long
。我假设也许我需要使用Filter
对象通过该ID进行搜索。还是有另一种方法?
答案 0 :(得分:1)
如果要使用自定义ID,则必须使用@Id
而不是@Index(unique=true)
来注释字段。如果您不想手动设置ID,则可以选择提供ID生成策略(更多详细信息in the documentation。
您看到此错误,是因为Neo4j-OGM无法确定您的id字段具有哪种类型,并退回到标准Long
。如果您如上所述定义ID,则load
将起作用。