Neo4j - комбинация Infinispan

Наш проект использует Neo4j в качестве долгосрочного хранилища данных.

У нас есть вариант использования, чтобы использовать сетку данных, чтобы избавить Neo4j от избыточных запросов, иметь возможность выполнять запросы непосредственно в ОЗУ и получать уведомления при изменении некоторых данных в памяти. В связи с этим мы убедились, что Infinispan очень интересен.

Вдобавок мы увидели, что Hibernate OGM может поддерживать хранилища данных Infinispan и Neo4j.

Можно ли использовать одну и ту же модель данных для сопоставления наших pojos как Neo4j, так и Infinispan с Hibernate OGM?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
49
1

Ответы 1

Да, если вы создадите две разные фабрики.

Если вы придерживаетесь JPA, вы можете использовать одни и те же классы сущностей в обеих конфигурациях единиц сохранения состояния, но вы не сможете использовать одну фабрику для работы с обоими хранилищами данных одновременно.

Это простой пример, взятый из одного из тестов, имеющихся в репозитории, который создает диспетчер сущностей для Hibernate ORM и один для Hibernate OGM:

<persistence xmlns = "http://java.sun.com/xml/ns/persistence"
         xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation = "http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
         version = "2.0">

  <persistence-unit name = "ogm" transaction-type = "RESOURCE_LOCAL">
    <provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider>
  </persistence-unit>

  <persistence-unit name = "no-ogm" transaction-type = "RESOURCE_LOCAL">
    <properties>
      <property name = "hibernate.dialect" value = "org.hibernate.dialect.H2Dialect"/>
    </properties>
  </persistence-unit>

</persistence>

Вам необходимо установить правильные свойства для вашего варианта использования.

Вы можете получить подходящую фабрику, используя:

EntityManagerFactory emf = Persistence.createEntityManagerFactory( "ogm" );

Вы можете сделать что-то подобное и с аннотациями.

Другие вопросы по теме