搜索具有自定义ID的对象

时间:2018-12-31 20:26:54

标签: java neo4j neo4j-ogm

我有一个看起来像这样的课

@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进行搜索。还是有另一种方法?

1 个答案:

答案 0 :(得分:1)

如果要使用自定义ID,则必须使用@Id而不是@Index(unique=true)来注释字段。如果您不想手动设置ID,则可以选择提供ID生成策略(更多详细信息in the documentation

您看到此错误,是因为Neo4j-OGM无法确定您的id字段具有哪种类型,并退回到标准Long。如果您如上所述定义ID,则load将起作用。

相关问题