Как мы можем хранить данные в двух разных базах данных одновременно, используя Hibernate? - PullRequest
0 голосов
/ 22 апреля 2011

Вопрос интервьюера:

Как мы можем хранить данные в двух разных базах данных одновременно, используя Hibernate?

Ответы [ 3 ]

1 голос
/ 22 апреля 2011

Я не уверен, но это возможно:

  1. Make 2 hibernate.cfg.xml
  2. В классе HibernateUtil, где вы строите свой объект sessionFactory. Построить 2 объекта SessionFactory. Создайте методы получения обоих объектов sessionFactory.
  3. Где вы хотите вставить некоторые данные, возьмите соответствующий объект sessionFactory и выполните операцию.
0 голосов
/ 22 апреля 2011

По моему опыту, пример для two or more databases from same data source

Основная база данных : hibernate.cfg.xml

<property name="hibernate.connection.url">
    jdbc:mysql://ip_adress:3306/main_db
</property>

Альтернативная база данных : класс домена

@Table(catalog = "alt_db", name = "table_name") // Specify catalog

@Table(catalog = "alt_db2", name = "table_name")
0 голосов
/ 22 апреля 2011

Я не думаю, что есть какая-либо встроенная функция Hibernate, но вы можете либо:

  1. Использовать 2 SessionFactories, но вы вряд ли сможете определить ее как «за раз»
  2. Использовать перехватчик Hibernate, который будет вносить изменения в другую базу данных при изменении какой-либо сущности
  3. Использовать события JPA (которые, я считаю, используют перехватчики под капотом)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...