gpt4 book ai didi

java - PreUpdate 监听器在空更新期间触发

转载 作者:行者123 更新时间:2023-11-29 05:43:28 26 4
gpt4 key购买 nike

我有一个具有最后修改属性的实体:

@Temporal(TemporalType.TIMESTAMP)
private Date lastModified;

@PreUpdate
@PrePersist
protected void onUpdate() {
lastModified = new Date();
}

和一个命名的 jpql 更新查询,它为旧实体设置一些属性:

update entity e set ... where e.lastModified < :threshold

onUpdate() 方法即使对于未修改的实体也会被调用,即事件如果:

entityManager.createQuery("...").executeUpdate();

返回零作为更新实体的数量。

我可以只更新旧的实体而不触及最近的实体吗? threshold 参数在更新后的实体中是未知的,所以我无法将更新移动到 onUpdate() 方法中。 native 查询可以帮助我吗?

最佳答案

为什么不在 lastModified 字段上用 @Version 替换 @PreUpdate/@PrePersist 机制?这样所有更新的实体都将设置字段(并且只有更新的实体)。

如果我能很好地理解您的情况,它应该会如您所愿地完成工作。

关于java - PreUpdate 监听器在空更新期间触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16666613/

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