Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数据库或ORM设置的SQL行创建和修改时间?_Java_Mysql_Hibernate_Jpa_Spring Data Jpa - Fatal编程技术网

Java 数据库或ORM设置的SQL行创建和修改时间?

Java 数据库或ORM设置的SQL行创建和修改时间?,java,mysql,hibernate,jpa,spring-data-jpa,Java,Mysql,Hibernate,Jpa,Spring Data Jpa,如果我想跟踪mysql行的created\u和modified\u的timestamp,有两种方法 让mysql更新字段: @Column(insertable = false, updatable = false, columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP") private LocalDateTime create_at; 或者使用我与spring j

如果我想跟踪
mysql
行的
created\u和
modified\u的
timestamp,有两种方法

让mysql更新字段:

@Column(insertable = false, updatable = false,
       columnDefinition = "TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP")
private LocalDateTime create_at;
或者使用我与spring jpa一起使用的orm(
hibernate
):

@CreationTimestamp //or even the jpa @CreatedAt
@Temporal(TemporalType.TIMESTAMP)
private Date modification;
问题:一个的优点是什么。 orm方法的优点是独立于数据库类型(对于单元测试可能很重要)。但是orm也必须为它“拦截”持久化进程

使用
当前\u时间戳
行独立于执行的代码


何时选择哪种方法有明确的界限吗?

数据库方法的主要缺点是以依赖于数据库的列定义结尾


但是,使用ORM方法有一个细微的区别,即您可以在同一方法/事务中知道赋值。使用数据库方法时,除非您进行另一次查询,否则您不会知道生成的值。

IMO这完全是您喜欢的