如何在 jpa 中为 mysql 设置默认当前日期
How to set default current date in jpa for mysql
我正在尝试自动生成当前日期但出现此错误
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server
version for the right syntax to use near 'CURRENT_DATE' at line 1
@Column(name = "ddate", columnDefinition = "DATE DEFAULT CURRENT_DATE")
private Date ddate;
我建议尝试将 CreationTimestamp 注释与 nullable = false, updatable = false
搭配使用
@Column(name = "ddate", nullable = false, updatable = false)
@CreationTimestamp
private Date ddate;
以上策略使用了当前的 VM 日期,所以如果您同意,请使用它。
作为@cjnash 答案的替代方案,Spring 提供了 @CreatedDate
注释来跟踪实体的创建时间。
这些注释的主要区别是 @CreationTimestamp
仅适用于 Hibernate 而 @CreatedDate
适用于 [=50] 涵盖的所有商店=] 数据:JPA、JDBC、R2DBC、MongoDb、Cassandra 等.
但要使其正常工作,配置步骤很少。
使用 '@EntityListeners'
注释对实体 class 进行注释。
通过使用 '@CreatedDate'
注释来创建字段。
将@EnableJpaAuditing
注释添加到'App'class。
此注释用于通过注释配置在 JPA 中启用审计。
// Entity Class
@Entity
@Table(name = "my_employee")
@EntityListeners(AuditingEntityListener.class)
public class Employee {
.....
.....
@CreatedDate
@Column(name = "ddate")
private Date ddate;
.....
.....
}
// App Class
@SpringBootApplication
@EnableJpaAuditing
public class App {
.....
.....
}
查看此 example 了解更多详情。
我正在尝试自动生成当前日期但出现此错误
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server
version for the right syntax to use near 'CURRENT_DATE' at line 1
@Column(name = "ddate", columnDefinition = "DATE DEFAULT CURRENT_DATE")
private Date ddate;
我建议尝试将 CreationTimestamp 注释与 nullable = false, updatable = false
@Column(name = "ddate", nullable = false, updatable = false)
@CreationTimestamp
private Date ddate;
以上策略使用了当前的 VM 日期,所以如果您同意,请使用它。
作为@cjnash 答案的替代方案,Spring 提供了 @CreatedDate
注释来跟踪实体的创建时间。
这些注释的主要区别是 @CreationTimestamp
仅适用于 Hibernate 而 @CreatedDate
适用于 [=50] 涵盖的所有商店=] 数据:JPA、JDBC、R2DBC、MongoDb、Cassandra 等.
但要使其正常工作,配置步骤很少。
使用
'@EntityListeners'
注释对实体 class 进行注释。通过使用
'@CreatedDate'
注释来创建字段。将
@EnableJpaAuditing
注释添加到'App'class。 此注释用于通过注释配置在 JPA 中启用审计。// Entity Class @Entity @Table(name = "my_employee") @EntityListeners(AuditingEntityListener.class) public class Employee { ..... ..... @CreatedDate @Column(name = "ddate") private Date ddate; ..... ..... } // App Class @SpringBootApplication @EnableJpaAuditing public class App { ..... ..... }
查看此 example 了解更多详情。