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