Задать вопрос
@makssieve
студент, начинающий программист

Почему Hibernate не подхватывает новые записи в базе?

Есть приложение менеджер базы данных с веб-мордой и приложение, которое из этой базы тянет записи тянет. В качестве ORM использую Hibernate. Суть: если в базу положить n-ое количество записей и потом запустить приложение, оно их вытянет и обработает. Но если в процессе выполнения приложения (оно в вечном цикле крутится) добавить запись в базу, то Hibernate категорически отказывается вытянуть ее и возвращает пустые коллекции. Чем это может быть вызвано?
  • Вопрос задан
  • 202 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Подозреваю, что дело в кешировании. Чтобы сбросить кеш, используйте Session.clear()
Ответ написан
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Из инструкции:
session.getSessionFactory().getCache().evictQueryRegion( "query.cache.person" );

Вариантов очистки достаточно много, как видно в документации.
Ответ написан
@bobzer
Java EE Developer
Проверьте как у вас завершаются транзакции после добавления записей, возможно, забыли сделать commit. Попробуйте добавить запись и проверить её наличие средствами самой БД (SQL-запросом), а не в вашем приложении.

Плюс проверьте логику чтения данных, поработайте под отладчиком (или добавьте вывод сообщений в лог) и убедитесь в том, что приложение вызывает метод чтения периодически, а не только при старте.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы