До Spring Boot 2.3.4 я использовал аннотацию @QueryResult для сопоставления некоторых пользовательских ответов на запросы Cypher с POJO. Сейчас я тестирую первый RC Spring Boot 2.4 и пытаюсь следовать инструкциям о том, как отказаться от OGM, поскольку поддержка была удалена. Я успешно заменил другие аннотации приведенными здесь: https://neo4j.github.io/sdn-rx/current/#migrating, но теперь у меня остались аннотации @QueryResult, для которых ничего не указано. Когда я удаляю их, я получаю ошибки отображения:
org.springframework.data.mapping.MappingException: Could not find mappable nodes or relationships inside Record
Я просмотрел некоторые объяснения сопоставления, но вот в чем дело: мои пользовательские POJO не представляют никакой сущности из базы данных и не представляют часть (части) сущности. Это довольно важные биты из разных узлов. Позвольте мне привести пример: я хочу получить все узлы b, являющиеся целями отношения MY_REL, из:
(a:Node {label:"my label"})-[:MY_REL]->(b:Node)
Для моих целей мне не нужно получать узлы в ответе, поэтому мой POJO имеет только 2 атрибута:
- исходная строка, которая является меткой начального узла
- целевой набор строк, который представляет собой список меток конечных узлов.
и я возвращаю это:
RETURN a.label AS source, COLLECT(b.label) AS targets
Мой POJO был просто аннотирован @QueryResult, чтобы выполнить сопоставление. Кто-нибудь знает, как воспроизвести это поведение с кандидатом на выпуск SB 2.4? Как я уже сказал, удаление ошибочной аннотации вызывает у меня ошибку отображения, но я не знаю, что мне делать, чтобы заменить ее.