我在我的项目中使用 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;
..................................................
}
关于java - 特定列的 Spring Data UpdateTimestamp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52991785/