【发布时间】:2021-11-29 09:03:48
【问题描述】:
我正在使用 Spring Boot 和 Spring Data JPA,并希望更新 JPA 更新语句中的 LastUpdatedDate 和 LastModifiedBy 字段。假设 Employee 是我的实体类,它扩展了 AbstractBaseEntity 类。
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
@Data
public abstract class AbstractBaseEntity {
@CreatedBy
@JsonIgnore
@Column(name = "CRTE_USER_ID")
protected String createdByUser = "TEST_USER";
@CreatedDate
@JsonIgnore
@Column(name = "CRTE_DT", updatable = false)
protected Date createdDate = new Date();
@LastModifiedBy
@JsonIgnore
@Column(name = "UPDT_USER_ID")
protected String lastUpdatedByUser = "TEST_USER";
@LastModifiedDate
@JsonIgnore
@Column(name = "UPDT_DT")
protected Date lastUpdatedOn = new Date();
@Version
@JsonIgnore
@Column(name = "VER_NUM")
protected Integer versionNumber = 1;
}
另一个类
public class Employee extends AbstractBaseEntity{
...
...
...
}
以下查询未更新任何日期。我们该如何解决?
@Modifying(clearAutomatically = true)
@Transactional
@Query("UPDATE Employee p SET p.status =:status, p.lastUpdatedOn = :lastUpdatedOn WHERE p.srcProjectKeyId = (:id)")
int updatestatus(@Param("status") String status, @Param("id") Long id, @Param("lastUpdatedOn") Date lastUpdatedOn);
【问题讨论】:
标签: jpa spring-data-jpa