我有一个域对象,注释如下
@Entity
@Table(name = "REQUEST")
public class Request {
/**
* Unique id for this request
*/
@Id
@GeneratedValue
@Column(name = "EQ_ID")
private long requestId;
/**
*
*/
@Column(name = "EMAIL_ID")
private String emailId;
/**
*
*/
@Column(name = "REQUEST_DATE")
private Date requestDate;
/**
*Getters/setters omitted
*/
}
Request_date 列不能为空,根据 DDL,默认值为 sysdate (oracle DB)。如何注释此字段,以便如果 requestDate 属性为 null,hiberanate 会自动插入 sysdate。?当前,当字段为 null 时它会抛出错误,这很明显,因为根据 DB 约束,它不能为 null。我该怎么做? 一种替代方法是将此字段标记为 transient ,插入工作正常。但不利的一面是,我将无法检索(request_date 列的)值。
最佳答案
这是 hibernate 注释中缺少的功能。正如 Yok 发布的那样,也存在一些解决方法。问题是解决方法取决于供应商,可能不适用于所有数据库。在我的例子中,Oracle,它不工作并且被报告为一个错误。
关于java - hibernate 注解,指定列默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3413487/