嘿我需要从表中返回Date作为一个长(毫秒)。我需要访问的列在oracle db上,并且是Timestamp类型(名称为ROW_TMSTP)。
我所做的是:
@Column(name = "ROW_TMSTP")
@Override
@Temporal(TemporalType.TIMESTAMP)
public Date getEntityTimeStamp() {
return entityTS;
}
@Transient
public Long getVersion() {
return entityTS.getTime();
}
有效。 如果我想选择版本高于x的记录,它不起作用。
如何编写一个在Timestamps上工作得很好的实体类?
请不要试图说服我改变数据库结构..我必须坚持所有,我必须通过getVersion返回一个字段。
谢谢!
修改
getVersion中缺少映射会导致我的select查询导致无效的标识符。删除@Transient
并添加适当的映射解决了问题。
@Column(name="ROW_TMSTP", updatable=false, insertable=false)
public Long getVersion() {
return entityTS.getTime();
}
然而,一个人有点棘手,而且很久以前......但这不是我的问题。
答案 0 :(得分:0)
如果我想选择版本较高的记录,它不起作用 比x
一种替代方法是,不是在where子句中使用version,而是可以将long转换为时间戳,并在应该执行此操作的where子句中使用entityTimestamp