поиск объекта с пользовательским идентификатором - PullRequest
0 голосов
/ 31 декабря 2018

У меня есть класс, который выглядит следующим образом

@Data
@NodeEntity
public class StoryCharacter {
    @Index(unique = true)
    private String agnosticId;
    private String name;

    @Relationship(type = "FAMILIAR_WITH")
    private Set<StoryCharacter> acquaintances;
}

Мне нужен пользовательский идентификатор, который не связан с идентификатором long по умолчанию.Поэтому я ввел поле и установил его как index.

Но как найти объект по этому идентификатору?

Я хотел сделать это следующим образом

session.openSession().load(StoryCharacter.class, "custom_id")

, но он завершается ошибкой, что это должно быть Long.Я предполагаю, что, возможно, мне нужно использовать Filter объект для поиска по этому идентификатору.Или есть другой способ?

1 Ответ

0 голосов
/ 04 января 2019

Если вы хотите использовать пользовательский идентификатор, поле должно быть помечено @Id вместо @Index(unique=true).В случаях, когда вы не хотите устанавливать идентификатор вручную, есть возможность предоставить стратегию генерации идентификатора (подробнее в документации .

Вы видите эту ошибку, потому что Neo4j-OGMне может определить, какой тип имеет ваше поле идентификатора и соответствует стандарту Long. Если вы определили свой идентификатор, как упомянуто выше, load будет работать.

...