自从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= GenerationType.IDENTITY) private Integer categoryId; private String categoryName; private String categoryType; private Date crea