数据库类型定义为datetime的时候,数据库是精确到时分秒的,我们要录入的时候,hibernate只能用save方法进行录入,无法使用hql语句录入。但是会有很多人录入的时候日期只是精确到日,这是为什么呢,怎么实现精确到时分秒呢。
我们先对HQL语句进行说明,为什么HQL语句不能执行添加操作呢,因为hibernate的HQL语言是用于面向对象实现的查询功能的,然而在插入操作中是不会涉及到任何查询动作的,所以HQL语句不能用于insert语句的插入操作,而select、update、delete语句都可以有可能实现查询。
比如:select语句是标准的查询,这个就不用说明了。
update语句:update对象名 set......where
delect语句:delect from 对象名 where......
update和delect都涉及到where的查询筛选过程,这个过程是需要采用HQL实现的,然而insert永远都不会涉及到筛选过程,所以所以hibernate没有对插入做insert实现,所以HQL语句不能执行插入操作,所hibernate实现插入操作只能使用save方法。
但是有一些人发现日期转换器写了,而且是转换到时分秒了,而且在控制台输出的也是有时分秒的,但是到了数据库里面就变成了精确到日了,这个问题怎么解决呢,其实很简单的。
如果你们使用的是由hibernate 的逆向工具从数据库表生成的*.hbm.xml ,对于数据库的date类型生成如下: