嘿,我需要从表中返回很长的日期(毫秒)。我需要访问的列在 oracle db 上,属于时间戳类型(名称 ROW_TMSTP)。
我所做的是:
@Column(name = "ROW_TMSTP")
@Override
@Temporal(TemporalType.TIMESTAMP)
public Date getEntityTimeStamp() {
return entityTS;
}
@Transient
public Long getVersion() {
return entityTS.getTime();
}
这有效..有时。如果我想选择版本高于 x 的记录,它不起作用。
如何编写一个在时间戳上工作得很好的实体类?
请不要试图说服我改变数据库结构。我必须坚持现有的,我必须通过 getVersion 返回一个字段。
谢谢!
编辑
getVersion 中缺少映射使我的选择查询导致标识符无效。删除@Transient
和添加正确的映射解决了这个问题。
@Column(name="ROW_TMSTP", updatable=false, insertable=false)
public Long getVersion() {
return entityTS.getTime();
}
一个有点棘手,虽然比较久远......但这不是我的问题。