Hibernate отметить сообщение как «прочитано»

1

Мое приложение имеет Message которое либо "прочитано", либо "непрочитано".

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

Тривиально мы можем сделать это, сначала итерации набора результатов и извлечения необходимых данных, а затем повторного повторения одного и того же набора и обновления необходимого сообщения.

Но является ли это оптимальным способом? Разве мы не можем использовать триггеры sql или некоторые функции спящего режима?

  • 0
    Вы должны выбрать с SQL, вы можете выбрать сообщения и отфильтровать их, где предложение, подобное Hibernate HQL, или вы можете использовать API критериев Hibernate / JPA.
  • 0
    @Joe Спасибо за ваш ответ, я знаком со стандартным языком запросов и языком запросов гибернации. Я могу использовать оба, чтобы отфильтровать желаемый результат. Я ищу механизм, который будет автоматически отмечать непрочитанные сообщения, выбранные после того, как я извлеку их информацию.
Показать ещё 3 комментария
Теги:
hibernate

1 ответ

0
Лучший ответ
  1. Обновление записей с помощью другого оператора обновления.
  2. Создайте хранимую процедуру для получения данных.
  3. Спецификация JPA содержит аннотацию @PostLoad, которую вы можете прочитать здесь. Но я был бы очень осторожен с этим, так как спящий режим может в любой момент выгрузить нагрузку на объект Message (ну, кто-то из вашей команды вызывает нагрузку, а ваши записи завинчиваются).

Ещё вопросы

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