Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 冬眠日期don';我不能节省时间_Java_Hibernate_Timestamp - Fatal编程技术网

Java 冬眠日期don';我不能节省时间

Java 冬眠日期don';我不能节省时间,java,hibernate,timestamp,Java,Hibernate,Timestamp,我正在hibernate中保存一个带有创建日期的实体 @Id @Column(name = "dtcreation") @Type(type="timestamp") private Date creation; @身份证 @列(name=“dtcreation”) @类型(Type=“timestamp”) 私人日期创建; 我在这个字段上写了一个新的日期: entity.setCreation(new Date()); entityDao.persist(ent

我正在hibernate中保存一个带有创建日期的实体 @Id @Column(name = "dtcreation") @Type(type="timestamp") private Date creation; @身份证 @列(name=“dtcreation”) @类型(Type=“timestamp”) 私人日期创建; 我在这个字段上写了一个新的日期: entity.setCreation(new Date()); entityDao.persist(entity); entity.setCreation(新日期()); entityDao.persist(实体); 但是,当它保存在数据库中时,时间并不包含毫秒,而是将其设置为0 如果我尝试用一个查询更新它工作的毫秒值…有人能帮我吗

在persist方法之后,我有一个记录,记录为2011年6月1日15:00:00.0 但是如果我进行了更新,我可以更改毫秒数,因此db支持它。。
数据库是informix

,如果没有您的代码进行测试,我很难给出确切的答案,但是在查看Javadoc for时,您似乎在混合类型,并将字段注释为时间戳。将java类型从Date更改为Timestamp,看看这是否解决了您的问题。

这与和的记录行为一致

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

如果您不想丢失第二个分数,也不想调查其他日期库(例如,前面提到的Joda时间),则需要将字段设置为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.util.Date非常古老和可怕。如果可以的话,调查一下乔达的时间。它与Hibernate集成。我想您的主要问题是您保存到的DB列(不是dateimpl,我从来没有遇到过带java.util.date的问题),我怀疑这是hibernate问题。基础数据库是什么?你的最后一句话很混乱,我会编辑它,但如果我的解释是错误的,我不想把它弄乱。如果你能澄清你对发生的事情的描述,那会很有帮助。你使用的是哪种数据库?你确定你使用了正确的方言吗?你是如何拥有实体的?休眠不保存de毫秒:S