自从mysql5.7之后,相信大家在设计数据库的时间字段时都会设计成下面这样达到自动更新的效果,非常实用。
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
但是,今天在使用jpa进行更新操作的时候,却发现update_time并没有自动更新,在多次尝试之后才发现如果需要自动更新update_time,需要在jpa对于的实体类上加上@DynamicUpdate注解才可以,于是也深入研究了下这个注解,发现这个注解还有其他的作用,例如它可以提高访问数据库的效率,那么它是怎么做到的呢?下面会具体演示分析。
1. 首先我们在实体类上不加@DynamicUpdate注解进行测试。
@Entity @Data @NoArgsConstructor @AllArgsConstructor public class ProductCategory { @Id @GeneratedValue(strategy=

在MySQL 5.7后,时间字段通常设置为自动更新。然而,当使用JPA更新时,发现update_time未自动更新。解决方法是在实体类上添加@DynamicUpdate注解。该注解能提高数据库访问效率,只更新改动的字段,避免无用的更新操作。@DynamicUpdate默认开启,关闭则等同于不使用该注解。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



