Я использую Spring Boot и Spring Data для своего проекта. В одной из таблиц у меня есть столбец с названием «itemStatus». Теперь я хочу добавить еще один столбец с отметкой времени, например «itemStatus_LastModifiedDate», чтобы сохранить дату последнего обновления в столбце itemStatus.
Есть ли способ сделать это чисто с помощью некоторых аннотаций, например:
@LastModifiedDate
@UpdateTimestamp
private Date itemStatusLastModifiedDate
Потому что, насколько мне известно, это работает только при обновлении сущности, а не определенного столбца.
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;
..................................................
}