在实体中返回日期

时间:2012-04-20 11:22:26

标签: hibernate jpa entity

嘿我需要从表中返回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();
}
然而,一个人有点棘手,而且很久以前......但这不是我的问题。

1 个答案:

答案 0 :(得分:0)

  

如果我想选择版本较高的记录,它不起作用   比x

一种替代方法是,不是在where子句中使用version,而是可以将long转换为时间戳,并在应该执行此操作的where子句中使用entityTimestamp