有没有办法在JPA中指定列的默认值

时间:2011-08-01 05:40:12

标签: hibernate jpa

@Entity 
class Foo {

@Column
private String productName;

@column
private Date orderedDate;

@Column
private int numHits;
}

我想指定默认值productName =“Toy”和orderedDate =“10天前”和numHits为“5”,以便在hbm2ddl期间将这些值转换为“默认”值并反映在架构中。< / p>

我应该使用什么注释,以便我能够以数据库不可知的方式实现这一点(例如对于h2,postgres,mysql)

2 个答案:

答案 0 :(得分:2)

因此,如果您想要一个给定列的默认值,但是您对数据库应该如何保证DDL的详细信息不感兴趣,您也可以简单地将该字段初始化为其默认值:< / p>

@Colum(name="emp_salary")
private double salary = 1500;

那不行吗?

答案 1 :(得分:1)

不是JPA的一部分,虽然你可以将它包含在@Column上的“columnDefinition”中(这显然是数据存储依赖的,所以是一个hack)。如果您希望使用JPA的数据存储不可知,则必须依赖特定于供应商的

JDO是唯一明确允许该标准的持久性标准,因此与数据存储区无关