Я провожу некоторые тесты Neo4J и сталкиваюсь со следующей своеобразной проблемой. Я создал небольшую модель, которую собираюсь использовать с OGM. Модель имеет суперкласс Entity и дочерний класс Child. Они оба в пакете persistence.model
. Объект имеет требуемый Long id;
с соответствующим геттером getId()
.
public abstract class Entity {
private Long id;
public Long getId() {
return id;
}
}
@NodeEntity
Child extends Entity {
String name;
public Child() {
}
}
Создание дочерних объектов и их сохранение через OGM работает нормально. Я основываюсь на примерах, найденных в документации, и использую объект Neo4jSessionFactory, который инициализирует SessionFactory пакетом persistence.model
. Результирующая база данных содержит объекты с правильно заполненными идентификаторами.
Проблема возникает, когда я пытаюсь получить дочерний элемент для данного идентификатора. Я пробую это тремя способами, используя две системы соединения (bolt и ogm):
boltSession.run("MATCH (a:Child) WHERE id(a) = {id} RETURN a", parameters("id", childId));
ogmSession.query("MATCH (a:Child) WHERE id(a) = $id RETURN a", params);
ogmSession.load(Child.class, childId, 1);
Первые два метода фактически возвращают правильные данные. Последний возвращает нулевое значение. Последний, использующий OGM, имеет некоторые очевидные преимущества, и я хотел бы иметь возможность использовать его должным образом. Может кто-то указать мне верное направление?