我遇到了一个奇怪的问题,即最后修改日期没有自动更新。我使用的是Postgresql 12.3版本和Springboot 2.2.4.RELEASE。这是我的实体类:
@Entity
@Table(name = "users")
@org.hibernate.annotations.Entity(
dynamicUpdate = true
)
@Data
public class Users {
@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(
name = "UUID",
strategy = "org.hibernate.id.UUIDGenerator"
)
@Column(updatable = false, nullable = false)
private String userId;
private String userName;
private String userEmail;
private String userPhoneNumber;
@CreationTimestamp
@Column(updatable = false)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+05:30")
private Timestamp createdOn;
@UpdateTimestamp
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+05:30")
private Timestamp lastUpdatedOn;
}
数据库记录:
createdon | lastupdatedon
2020-08-27 07:43:37.994 | 2020-08-27 07:43:37.994
2020-08-07 07:49:22.797 | 2020-08-07 07:49:22.797
2020-08-12 13:38:43.503 | 2020-08-12 13:38:43.503
您可以看到,createdOn和lastUpdatedOn是相同的。即使记录经常更新,最后修改日期也没有更新。
我正在使用jpa repository保存记录 例如:
usersRepository.save(user);
dynamicUpdate
?只是好奇。另外,你是否在某个地方通过查询来更新某些内容(因为这会绕过监听器)? - M. Deinum