Некоторые общие замечания.
Вам нужно только передавать entityManagerFactory в Spring Data Graph, если вы хотите использовать кросс-хранилище Graph-JPA. Пример можно найти здесь . Если вы это сделаете, то вам также следует включить флаг part = true в ваших POJO, которые вы хотите использовать в настройке кросс-магазина.
Кросс-хранилище графа данных Spring и кросс-хранилище данных Spring MongoDB работают по-разному в том, как они взаимодействуют с JPA, SDG работает со стороны POJO графика, когда при сохранении или загрузке сущностей они (повторно) подключаются к своей сущности JPA (через @ Идентификатор поля).
С другой стороны, Spring Data MongoDB использует AspectJ для дополнения некоторых методов EntityManager для включения событий жизненного цикла для базы данных документов.
В настоящее время нет истории интеграции MongoDB и Neo4j. Но поскольку мы, руководители обоих проектов, живем в одном городе и тесно сотрудничаем, я думаю, что это должно быть выполнимо.
Было бы замечательно, если бы вы могли поделиться где-нибудь с нами полным кодом вашего проекта, либо на github (это также может быть частное хранилище [мой идентификатор github - "jexp", либо для почты или дропбокса).
Так что мы можем копаться прямо в него.
На ваши вопросы:
- graph + rdmbs - это все сущности, которые имеют частичное = true, и вы должны иметь аннотации @Entity в своем POJO
- Я не уверен, как правильно настроено постоянство моно-кросс-магазина
- обычно это должно быть настроено через persistence.xml, в какие хранилища отображается сущность?
- т.е. возможно, нам следует разработать механизм, который говорит, что настраивает файл persistence.xml для каждого магазина, который хочет взаимодействовать с EntityManager / JPA / RDMBS
- Возможно, это также работает, определяя двух менеджеров сущностей, один для графа, а другой для Монго?
- сначала вы должны запустить его во встроенном режиме neo4j, а позже заглянуть на удаленный сервер (REST)
- вам, вероятно, следует обновить Spring Data Graph до 1.1.M2, Neo4j до 1.4 и AspectJ до 1.6.12.M1
Пожалуйста, свяжитесь лично, чтобы мы могли решить все проблемы и найти хорошее решение.