一尘不染

为JPA中的列设置默认值

java

可以为JPA中的列设置默认值吗?如果使用注释,如何做到这一点?


阅读 665

收藏
2020-03-23

共3个答案

一尘不染

实际上,在JPA中是可能的,尽管使用批注的columnDefinition属性有些小小的@Column改动,例如:

@Column(name="Price", columnDefinition="Decimal(10,2) default '100.00'")
2020-03-23
一尘不染

另一种方法是使用javax.persistence.PrePersist

@PrePersist
void preInsert() {
   if (this.createdTime == null)
       this.createdTime = new Date();
}
2020-03-23
一尘不染

@Column(name="price")
private double price = 0.0;

那里!你刚刚使用零作为默认值。

请注意,如果你仅从此应用程序访问数据库,它将为你提供服务。如果其他应用程序也使用该数据库,则应使用Cameron的 columnDefinition批注属性或其他方式从数据库中进行此检查。

2020-03-23