JPA编程使用注解@LastModifiedDate,自动更新修改时间字段

编程入门 行业动态 更新时间:2024-10-09 08:31:22

JPA编程使用<a href=https://www.elefans.com/category/jswz/34/1768912.html style=注解@LastModifiedDate,自动更新修改时间字段"/>

JPA编程使用注解@LastModifiedDate,自动更新修改时间字段

一、背景

jpa编程中,我们一般会设计以下五个字段:

在新增记录的时候,无需对创建时间和修改时间进行赋值。

此外,你还得在类上,增加注解@EntityListeners(AuditingEntityListener.class)。

@EntityListeners(AuditingEntityListener.class)
public class Lecture {@Column(name = "task_count", nullable = false, columnDefinition = "INT default 0 COMMENT '任务总数'")private int taskCount;// 其他字段省略,本文重点对象是修改时间@LastModifiedDate@CreatedDate@Column(name = "modified_date", columnDefinition = "datetime DEFAULT NOW() COMMENT '修改时间'")private Date modifiedDate;
}

然后你在更新任务数的时候,理所当然,jpa会自动更新修改时间。

实际上,当你的任务数没有变化的时候,是不会更新其修改时间。

如果你的程序对修改时间字段是否变更,涉及到其他的业务逻辑,那么希望你引起重视,还是老实地手动给修改时间赋值吧。

二、实现

  • 修改前的代码
      Lecture lecture = lectureRepository.findById(lectureId);lecture.updateTaskCount(request.getTaskCount());lectureRepository.save(lecture);/*** 更新任务数.** @param taskCount* @return*/public boolean updateTaskCount(Integer taskCount) {boolean hasUpdate = false;if (null != taskCount && this.taskCount != taskCount) {this.taskCount = taskCount;hasUpdate = true;}return hasUpdate;}

这种写法,如果原本taskCount = 3, 然后你调用该方法,再save()的话,是不会自动更新修改时间。

  • 修改后的写法
      Lecture lecture = lectureRepository.findById(lectureId);Date refreshDate = DateUtil.date();lecture.updateTaskCount(request.getTaskCount(), refreshDate);lectureRepository.save(lecture);/*** 更新任务数.** @param taskCount* @param modifiedDate* @return*/public boolean updateTaskCount(Integer taskCount, Date modifiedDate) {boolean hasUpdate = false;if (null != taskCount && this.taskCount != taskCount) {this.taskCount = taskCount;hasUpdate = true;}// 无论有无任务数的变更,都刷新更新时间(如果缺少下行,当没有任务数的变化,则更新时间不会刷新)this.modifiedDate = modifiedDate;return hasUpdate;}

三、总结

希望本文能够帮助到你,调用jpa的save()方法并不是每次都会刷新修改时间。

更多推荐

JPA编程使用注解@LastModifiedDate,自动更新修改时间字段

本文发布于:2023-11-17 07:55:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1642174.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:注解   字段   自动更新   时间   JPA

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!