Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 有没有办法为JPA中的列指定默认值_Hibernate_Jpa - Fatal编程技术网

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

Hibernate 有没有办法为JPA中的列指定默认值,hibernate,jpa,Hibernate,Jpa,我希望将默认值productName=“Toy”和ORDEREDATE=“10天前”指定为“5”,以便这些值在hbm2ddl期间转换为“默认”值并反映在架构中 我应该使用什么注释,以便以不依赖数据库的方式实现这一点(例如,对于h2、postgres、mysql)不是JPA的明确部分,尽管您可以将其包含在@Column上的“columnDefinition”中(这显然依赖于数据存储,因此是一种攻击)。如果您想在JPA中实现数据存储的不可知性,就必须依赖于供应商的具体信息 JDO是唯一一个明确允许它

我希望将默认值productName=“Toy”和ORDEREDATE=“10天前”指定为“5”,以便这些值在hbm2ddl期间转换为“默认”值并反映在架构中


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

不是JPA的明确部分,尽管您可以将其包含在@Column上的“columnDefinition”中(这显然依赖于数据存储,因此是一种攻击)。如果您想在JPA中实现数据存储的不可知性,就必须依赖于供应商的具体信息


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

不是JPA明确的一部分,尽管您可以将它包含在@Column上的“columnDefinition”中(这显然依赖于数据存储,因此是一种攻击)。如果您想在JPA中实现数据存储的不可知性,就必须依赖于供应商的具体信息


JDO是唯一明确允许这种情况的持久性标准,因此与数据存储无关。因此,如果您想要给定列的默认值,但对数据库如何保证这一点的DDL细节不感兴趣,那么您不妨将字段初始化为其默认值:

@Entity 
class Foo {

@Column
private String productName;

@column
private Date orderedDate;

@Column
private int numHits;
}

这不管用吗?

因此,如果您想要给定列的默认值,但对数据库应如何保证这一点的DDL详细信息不感兴趣,那么您只需将字段初始化为其默认值即可:

@Entity 
class Foo {

@Column
private String productName;

@column
private Date orderedDate;

@Column
private int numHits;
}

这不管用吗?

我知道columnDefinition,但正如我前面提到的,我更喜欢数据库无关的解决方案。我不确定我是否能够在这个阶段将代码从JPA移动到JDO。我知道columnDefinition,但正如我前面提到的,我更喜欢数据库无关的解决方案。我不确定在这个阶段我是否能够将代码从JPA移动到JDO。如果有人通过SQL填充代码,那么同样的限制不适用,因为上面的常量是通过模型修改的。如果有人通过SQL填充代码,那么同样的限制不适用,因为上面的常量是通过模型修改的