Spring Data UpdateTimestamp для определенного столбца

Я использую Spring Boot и Spring Data для своего проекта. В одной из таблиц у меня есть столбец с названием «itemStatus». Теперь я хочу добавить еще один столбец с отметкой времени, например «itemStatus_LastModifiedDate», чтобы сохранить дату последнего обновления в столбце itemStatus.

Есть ли способ сделать это чисто с помощью некоторых аннотаций, например:

@LastModifiedDate
@UpdateTimestamp
private Date itemStatusLastModifiedDate

Потому что, насколько мне известно, это работает только при обновлении сущности, а не определенного столбца.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
236
1

Ответы 1

1 Вы не можете использовать аннотацию @UpdateTimestamp для отслеживания обновления одного поля.

2 Вы можете выполнить собственное обновление, используя аннотацию @SqlUpdate с настраиваемым запросом на обновление. Примерно так (этот код не проверял)

@SqlUpdate(update item set item_status = :itemStatus, itemStatusModDate = case when (item_status = :itemStatus) then sysdate() else item_status_mod_date where id = :id)
public class Item {

  @GeneratedValue
  private Long id;

  private String itemStatus;

  private Date itemStatusModDate;
..................................................
}

Другие вопросы по теме