可以为JPA中的列设置默认值吗?如果使用注释,如何做到这一点?
实际上,在JPA中是可能的,尽管使用批注的columnDefinition属性有些小小的@Column改动,例如:
columnDefinition
@Column
@Column(name="Price", columnDefinition="Decimal(10,2) default '100.00'")
另一种方法是使用javax.persistence.PrePersist
javax.persistence.PrePersist
@PrePersist void preInsert() { if (this.createdTime == null) this.createdTime = new Date(); }
@Column(name="price") private double price = 0.0;
那里!你刚刚使用零作为默认值。
请注意,如果你仅从此应用程序访问数据库,它将为你提供服务。如果其他应用程序也使用该数据库,则应使用Cameron的 columnDefinition批注属性或其他方式从数据库中进行此检查。