Обновление одноэлементного объекта с использованием Spring & Hibernate при обновлении базы данных

1

Я пытаюсь обновить одноэлементный объект (который загружается весной при запуске приложения с использованием определения bean-компонента). Однако этот объект загружается записями из таблицы в базе данных (MySQL).

Эта таблица может время от времени обновляться через приложение.

Возможно ли обновить одноэлементный объект с использованием пружины и спящего режима при обновлении строки в базе данных?

  • 1
    Если содержащиеся в нем данные достаточно малы для хранения в памяти, загрузка состояния из базы данных каждый раз, когда это необходимо, не должна быть проблемой. Вы всегда можете использовать кэш 2-го уровня, если это действительно необходимо.
  • 0
    Я не понимаю вашего смысла, говоря «таблица может обновляться через приложение», означает ли приложение другую функцию из того же vm? Или это означает, что другой виртуальный компьютер или хост может писать таблицу одновременно? Если изменения произошли от другого виртуального компьютера или хоста, ваш текущий объект уже загрязнен. Вам нужно будет загружать их из базы данных каждый раз, чтобы они оставались неизменными в базе данных, как предложил @JBNizet.
Показать ещё 1 комментарий
Теги:
database
spring-mvc
hibernate
jpa

1 ответ

1
Лучший ответ

Вы можете использовать прослушиватели событий Hibernate:

  1. Проверьте, как добавить слушателей событий к вашей фабрике сеансов.
  2. Вы можете прослушивать события сущности persist/merge/flush. Поскольку прослушиватель событий является объектом Spring, вы можете ввести ссылку на свой синглтон.
  3. После перехвата желаемого события вы можете обновить состояние singleton с помощью последних обновленных данных.
  • 0
    Который будет работать только в одном приложении. Если у вас есть несколько приложений, изменяющих одни и те же данные, вы не получите эти события.
  • 0
    В вопросе говорится: «Эта таблица может время от времени обновляться через приложение».
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню