2013-08-19 1 views
2

Я использую небольшой скрипт Clojure, который вставляет узлы в мой экземпляр Neo4j. Чтобы показать эти узлы, я использую webapp с пружиной с Spring Data Neo4j. Я также создал небольшой объект домена, который представляет узел.Данные Spring Neo4j не распознают внешние вставленные узлы

Когда я вставляю узел, используя webapp, он будет загружен и показан прямо из коробки. Но когда я пытаюсь загрузить узел, который был вставлен внешним скриптом, его не найти. Чтобы быть совместимым, я думал, что достаточно достаточно добавить атрибут _ типа _ с FQN класса домена. Но мне кажется, что есть еще что делать.

Я использую 1.8.2 сервер Neo4j и SDN 2.2.2

Можете ли вы дать мне подсказку?

Заранее спасибо.

Лучший, Маркус

+0

Предоставляет ли Neo4j какой-то кеш? Потому что похоже, что ваши узлы, вставленные из стороннего приложения, не находятся в кеше веб-приложений, и поэтому они их не видят. если это так, вам нужна единственная точка входа или способ аннулирования кеша. –

+0

К сожалению, я не думаю, что это поможет. Кто-нибудь меня исправит, если я ошибаюсь. У меня есть свободное предположение, что это может иметь какое-то отношение к индексам, которые не будут доступны в SDN. Но, честно говоря, на данный момент я понятия не имею. –

ответ

5

Пружина данных Neo4j (SDN) использует TypeRepresentationStrategy. Если SDN не настроен явно, он использует IndexingNodeTypeRepresentationStrategy и IndexingRelationshipTypeRepresentationStrategy по умолчанию. Эти стратегии хранят индекс с именем «__types__» для всех его узлов узла и один из них «__rel_types__» для всех его объектов отношений. Все объекты узла или отношения, которые создаются SDN, будут добавлены в соответствующий индекс.

Если вы используете инфраструктуру хранилища SDN и вызываете yourEntityRepo.findAll(), будет запрошен индекс «__types__» (или «__rel_types__»), чтобы получить все ваши объекты для этого конкретного типа.

Ваш скрипт, вероятно, не обновляет эти индексы. Посмотрите на reindexing solution described on the neo4j google group.

+0

Отличный ответ, @James! –

Смежные вопросы