ras*_*cio 5 java timestamp hibernate
我正在使用创建日期在hibernate中保存一个实体
@Id
@Column(name = "dtcreation")
@Type(type="timestamp")
private Date creation;
我在这个字段上添加了一个新日期:
entity.setCreation(new Date());
entityDao.persist(entity);
但是当它保存在db上时,时间不包含毫秒,但如果我尝试用查询更新它的工作时间毫秒的值,则将其设为0 ...有人可以帮助我吗?
在持久化方法后我有一个记录与01/06/2011 15:00:00.0但如果我做了一个UPDATE我可以改变毫秒,所以db支持它..数据库是informix
这与java.util.Date和java.sql.Timestamp的记录行为一致
java.util.Date存储到第二个,java.sql.Timestamp是一个瘦包装器,以容纳SQL时间戳值的纳秒值.如果您阅读时间戳javadoc上的注释,它会清楚地说明这种差异.
如果你不想丢失你的第二个分数,并且不想调查替代日期库(例如前面提到的Joda Time),你需要将该字段设为java.sql.Timestamp,并使用milisecond值构造初始值的当前日期
java.util.Date date = new java.util.Date();
java.sql.Timestamp timestamp = new java.sql.Timestamp(date.getTime());
entity.setCreation(timestamp);
Run Code Online (Sandbox Code Playgroud)
如果没有您的代码进行测试,我很难明确回答,但是在查看java.sql.Timestamp的 Javadoc 时,您似乎正在混合类型并将字段注释为时间戳。将 java 类型从 Date 更改为 Timestamp 并查看是否可以解决您的问题。