Neo4j OGM поддържа произволни свойства на възел, които се съпоставят към класове обекти чрез @Convert
и CompositeAttributeConverter
, но какво ще кажете за частта за релацията? Как бих картографирал произволни отношения в @NodeEntity
?
Действителните свойства и релации, използвани в моя модел на данни, са конфигурируеми, т.е. те не са известни по време на компилиране. Пример: Конфигурацията определя възли с етикет A и B и връзка от A към B, наречена REL_1. Сега, когато правя заявки за възли на етикет A, тогава бих искал да извлека и картографирам релациите в съответния резултатен обект на възел.
Опитах се да създам cypher заявки в зависимост от конфигурацията, но съм заседнал в извличането на релации, чийто краен възел трябва да бъде картографиран от OGM. Ето моята опростена генерирана структура на заявка:
MATCH (n:A) RETURN n, [(n)-[rn:REL_1]-(n2) | [rn, n2]]
Аз също опитах
MATCH (n:A) RETURN n, [[(n)-[rn:REL_1]-(n2) | [rn, n2]]]
което е същият модел, който се генерира от OGM при извикване на session.load
с фиксиран модел на данни. И двете заявки обаче не картографират n2
в резултата от session.query
повикване. Вместо това върнатият тип за n2
е NodeModel
, но не искам да го картографирам сам, защото OGM вече може да го направи. Какво не е наред с моята заявка? Или това е грешка?
Забележка: Тази заявка ще свърши работа, но изглежда като странно решение.
MATCH (n:A) RETURN n, [(n)-[rn:REL_1]-() | rn], [(n)-[:REL_1]-(n2) | n2]
Използвам Neo4J 3.5 с включен OGM 3.2.3 чрез Sprint Boot 2.2.2.
de
във вашите заявки не е дефиниран. Имахте предвидn
? - person cybersam   schedule 03.01.2020