OpenJPA时间戳不会在DB中存储时间

时间:2014-05-02 18:43:18

标签: java sql oracle-sqldeveloper openjpa

我正在使用openjpa和oracle sql developer。在其中一个表中,我有审计字段,用于存储创建行的时间戳和后续更新时间。以下是我尝试过的事情:

  1. 将列默认标记为CURRENT_TIMESTAMP,并在模型中使用insertable as false。这会在插入行时创建时间戳,但在更新时会更新所有0值的时间,日期值保持不变。

  2. 对时间戳使用@Temporal注释,类型为java.util.Date。这只存储了日期而没有时间戳。将列数据类型更改为时间戳,并将所有0值存储在时间戳中,并显示当前日期:02-MAY-14 12.00.00.000000000 AM

  3. 我删除了@Temporal并将模型中的类型更改为java.sql.timestamp。行为与上述相同。

  4. 型号:

    @Column(name = "LAST_UPDATE_DATE", nullable = false)
    private Timestamp lastUpdateDate;
    
    public Timestamp getLastUpdateDate() {
        return this.lastUpdateDate;
    }
    
    public void setLastUpdateDate(Timestamp lastUpdateDate) {
        this.lastUpdateDate = lastUpdateDate;
    }
    

    我在创建过程中设置的值是:

    this.setLastUpdateDate(new Timestamp(new Date()。getTime()));

    我搜索了同样的东西并尝试了所有的建议但不知何故它不适合我。 db中的数据类型是Timestamp。

    任何人都使用openjpa并遇到同样的问题?有任何想法解决这个问题,除了在数据库中将数据类型转换为String或long,并相应地存储该值。

0 个答案:

没有答案