我正在使用这段代码:
@Column(name = "FECHA_CREACION_TIMESTAMP",columnDefinition="DATE DEFAULT SYSDATE", insertable=false)
@Temporal(TemporalType.TIMESTAMP)
private Date fechaCreacionTimestamp;
但是当我向表中插入一些数据时,它没有日期,只有像 null 这样的日期。
更新答案:(现在我知道您使用的是 Oracle)
您需要确保该列不包含在插入语句中。为此,您需要更新您的@Column
注释,例如:
@Column(..other properties.., insertable = false)
有关更多详细信息,请参见此处。
现在,您还需要确保在执行insert
. 如果您使用的是 Hibernate,并且不介意使用 Hibernate 注释,则可以将以下注释放在您的字段上。
@org.hibernate.annotations.Generated(org.hibernate.annotations.GenerationTime.INSERT)
Hibernate 将自动为您执行所需的select
查询。
如果您不使用 Hibernate,则需要select
在执行insert
. JPA
没有任何内容可以指定这应该自动完成。
你可以使用类似的东西:
@Column(name = "FECHA_CREACION_TIMESTAMP",columnDefinition="TIMESTAMP DEFAULT CURRENT_TIMESTAMP", insertable=false)
@Temporal(TemporalType.TIMESTAMP)
private Date fechaCreacionTimestamp;