gpt4 book ai didi

java - hibernate 日期不保存毫秒

转载 作者:搜寻专家 更新时间:2023-10-31 19:35:17 24 4
gpt4 key购买 nike

我正在使用创建日期在 hibernate 状态下保存一个实体

    @Id    @Column(name = "dtcreation")    @Type(type="timestamp")    private Date creation;
我在这个字段上输入了一个新日期:
    entity.setCreation(new Date());    entityDao.persist(entity);
但是当它保存在数据库中时,时间不包含毫秒,而是将其设为 0如果我尝试用查询更新它有效的毫秒值...有人可以帮助我吗?

在 persist 方法之后我有一个记录 01/06/2011 15:00:00.0但如果我进行了更新,我可以更改毫秒数,所以数据库支持它..数据库是informix

最佳答案

这与 java.util.Date 记录的行为一致和 java.sql.Timestamp

java.util.Date 存储到秒,而 java.sql.Timestamp 是一个瘦包装器,用于容纳 SQL 时间戳值的纳秒值。如果您阅读了时间戳 javadoc 上的说明,它清楚地说明了这种差异。

如果您不想丢失第二个分数,并且不想研究替代日期库(例如前面提到的 Joda Time),您需要将该字段设为 java.sql.Timestamp,并使用当前日期的毫秒值构造初始值

java.util.Date date = new java.util.Date();
java.sql.Timestamp timestamp = new java.sql.Timestamp(date.getTime());
entity.setCreation(timestamp);

关于java - hibernate 日期不保存毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6200972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com