gpt4 book ai didi

java - 无法使用@UpdateTimestamp注释更新时间戳

转载 作者:行者123 更新时间:2023-12-02 06:08:14 25 4
gpt4 key购买 nike

@UpdateTimestamp
@Column(name="UPDATE_TIME_STAMP")
private LocalDateTime updateTimeStamp;

@CreationTimestamp
@Column(name="POLICY_ISSUE_DATE")
private LocalDateTime policyIssueDate;

您好,我是 hibernate 新手,我的实体和数据库中都有上述字段。但是,对于我从 SpringBoot Controller 访问的 Dao 方法,它在使用以下方法执行查询更新时不会更新数据库中的 UPDATE_TIME_STAMP 字段。

@Override
public int updatePolicyStatus(String status,int policyNumber) {
Query query = entityManager.createQuery("UPDATE Policy p SET POLICY_STATUS=:status where POLICY_NUMBER=:policyNumber");
query.setParameter("status",status);
query.setParameter("policyNumber", policyNumber);
return query.executeUpdate();
}

此外,如果我尝试合并实体,它会尝试用 NULL 更新creationTimeStamp,但由于我在数据库中将 POLICY_ISSUE_DATE 保留为 NOT NULL,所以最终会失败。

@Override
public void updatePolicy(Policy policy) {
entityManager.merge(policy);

}

所以我在使用合并(策略)时如何避免creationTimeStamp的NULL值,以及为什么updateTimeStamp不使用executeUpdate()更新。

最佳答案

您需要将下面显示的注释添加到您的模型/实体类中。您可以检查一下并让我知道它是否适合您。在我的应用程序中,我已经使用过它很多次,它的效果就像黄油一样.希望它也适合您。

@UpdateTimestamp
@Column(name = "data_update_time")
@Temporal(TemporalType.TIMESTAMP)
private Date dataUpdateTime;

关于java - 无法使用@UpdateTimestamp注释更新时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55929518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com