是否可以为JPA中的列设置默认值,如果可以,如何使用注释来完成?
当前回答
我使用columnDefinition,它工作得很好
@Column(columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP")
private Date createdDate;
其他回答
实际上,这在JPA中是可能的,尽管使用@Column注释的columnDefinition属性有点hack,例如:
@Column(name="Price", columnDefinition="Decimal(10,2) default '100.00'")
当您在插入数据时在数据库中设置默认约束时,@Column(columnDefinition='…')不工作。 你需要使insertable = false并删除columnDefinition='…’,那么数据库将自动从数据库中插入默认值。 例如,当你在数据库中设置varchar时,性别默认为男性。 你只需要在Hibernate/JPA中添加insertable = false,它就可以工作了。
我尝试了一些JPA/ hibernate的方法,但没有一个似乎工作得很好。由于我使用Oracle,我创建了一个“之前的触发器”,在触发器中一个简单的空测试,然后如果空集根据需要
如果你正在使用double,你可以使用以下语句:
@Column(columnDefinition="double precision default '96'")
private Double grolsh;
是的,它是特定于db的。
这在JPA中是不可能的。
下面是您可以使用Column注释执行的操作:http://java.sun.com/javaee/5/docs/api/javax/persistence/Column.html
推荐文章
- 如何格式化Joda-Time DateTime仅为mm/dd/yyyy?
- 如何在POM.xml中引用环境变量?
- 如何在android中复制一个文件?
- 将整数转换为字符串,以逗号表示千
- 接口方法的最终参数-有什么意义?
- Java中的@UniqueConstraint注释
- 如何在清洁模式下运行eclipse ?如果我们这样做会发生什么?
- 获取java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory异常
- Java中的正则表达式命名组
- c#和Java的主要区别是什么?
- 什么是NullPointerException,我如何修复它?
- 在Java中使用“final”修饰符
- 无法在Flutter上找到捆绑的Java版本
- 如何在Kotlin解析JSON ?
- 如何在新的材质主题中改变背面箭头的颜色?