我有一个域对象,注释如下
@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列不能为null,根据DDL,默认值为sysdate(oracle DB).如何对该字段进行注释,以便在requestDate属性为null时,hiberanate会自动插入sysdate.目前,当字段为空时,它会抛出错误,这非常明显,因为根据数据库约束它不能为空.我该怎么做?
另一种方法是将此字段标记为瞬态,插入工作正常.但负面的方面是,我将无法检索(request_date列的)值.
解决方法
您可以将默认值放在columnDefinition中.一个例子如下:
@Column(name = "REQUEST_DATE",nullable = false,columnDefinition = "date default sysdate")