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