2011-08-01 26 views
0
@Entity 
class Foo { 

@Column 
private String productName; 

@column 
private Date orderedDate; 

@Column 
private int numHits; 
} 

我想=“106天”和numHits为“5”,指定产品名称=“玩具”和orderedDate的默认值,所以它们在hbm2ddl期间翻译为“默认”值并反映在模式中。是否有JPA指定一个列的默认值的方式

我应该使用什么样的注释,这样我就可以在一个数据库无关的方式(如H2,Postgres的,MySQL的)JPA的

回答

2

所以,如果你想有一个缺省对于给定的列值,但你不感兴趣的应如何通过数据库得到保障DDL细节,你还不如干脆现场初始化为它的默认值:

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

这样不是工作?

+0

如果有人通过SQL填充它,那么相同的限制不会保持不变,因为通过模型修改上述常量 – user339108

1

不是部分实现这一目标明确,虽然你可以将它包括到“columnDefinition”上@Column(这显然是数据存储依赖的,所以一个黑客)。你不得不依赖于供应商的细节,如果你想以数据存储为agnosticity为与JPA

JDO是唯一的持久性标准,明确允许,因此是数据存储不可知

+0

我知道columnDefinition,但正如我前面提到的,我更喜欢数据库不可知的解决方案。在这个阶段,我不确定我是否能够将代码从JPA移动到JDO。 – user339108

相关问题