Изменения базы данных, сделанные одним экземпляром приложения, не переносятся другим экземпляром с помощью Hibernate - PullRequest
0 голосов
/ 15 сентября 2010

У меня есть приложение, которое может читать / записывать изменения в таблицу базы данных. Другой экземпляр того же приложения должен видеть обновленные значения в базе данных. Я использую Hibernate для этой цели. Если у меня запущено 2 экземпляра приложения, и если я впервые внес изменения в БД из одного экземпляра, обновленные значения можно увидеть со второго. Но любые дальнейшие изменения из первого экземпляра не отражаются во втором. Пожалуйста, пролите немного света.

Ответы [ 2 ]

0 голосов
/ 15 сентября 2010

Вы можете использовать hibernate.connection.autocommit = true

Это заставит hibernate зафиксировать каждое обновление SQL в базе данных немедленно, и вы сможете увидеть изменения из другого приложения..

ОДНАКО, я настоятельно рекомендую вам не делать этого.Как отметил Аарон, вы должны использовать только один Hibernate SessionFactory с базой данных.

Если вам нужно синхронизировать несколько приложений, подумайте об использовании общего кэша, например Gemstone.

0 голосов
/ 15 сентября 2010

Это похоже на ошибку в настройках вашего кеша.По умолчанию Hibernate предполагает, что это единственный, кто изменяет базу данных.Это позволяет ему эффективно кэшировать объекты.Если несколько сторон могут изменять таблицы в БД, то для этих таблиц / экземпляров необходимо отключить кэширование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...