che*_*ine 4 java oracle orm hibernate jpa
我有一个域对象,注释如下
@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
*/
}
Run Code Online (Sandbox Code Playgroud)
Request_date列不能为null,根据DDL,默认值为sysdate(oracle DB).如何对该字段进行注释,以便在requestDate属性为null时,hiberanate会自动插入sysdate.目前,当字段为空时,它会抛出错误,这非常明显,因为根据数据库约束它不能为空.我该怎么做?另一种方法是将此字段标记为瞬态,插入工作正常.但负面的方面是,我将无法检索(request_date列的)值.
您可以将默认值放在columnDefinition中.一个例子如下:
@Column(name = "REQUEST_DATE", nullable = false, columnDefinition = "date default sysdate")
Run Code Online (Sandbox Code Playgroud)
这是hibernate注释中缺少的功能.Yok也发布了一些解决方法.问题是变通方法依赖于供应商,可能不适用于所有数据库.在我的情况下,Oracle,它没有工作,并被报告为一个错误.
| 归档时间: |
|
| 查看次数: |
26237 次 |
| 最近记录: |