hibernate执行查询语句

场景:Hibernate执行查询语句出错!该如何处理

Hibernate执行查询语句出错!!!!
我两条hql查询语句
hql1= "form   article   order   by   pubtime   desc "
hql2= "form   article   order   by   visitcount   desc "

其中,   article   是   mysql数据库中的一张表
其字段和类型如下:
    pubtime(datatime),   content(varchar),   id(integer),
    title(varchar),   sortid(integer),   visitcount(integer)
有的可以为空,有的不为空,不过在数据库里,所有字段都是有值的

然后我通过   session.createQuery(hql);这条语句来执行上面的语句

但是结果是:hql1可以运行,而hql2不可以运行

其错误只要提示,如下:
20:47:27,875   DEBUG   ErrorCounter:68   -   throwQueryException()   :   no   errors
20:47:27,937   DEBUG   QueryTranslatorImpl:216   -   HQL:   from   com.ukey.Blog.Article   order   by   visitcount   desc
20:47:27,937   DEBUG   QueryTranslatorImpl:217   -   SQL:   select   article0_.id   as   id2_,   article0_.title   as   title2_,   article0_.content   as   content2_,   article0_.pubtime   as   pubtime2_,   article0_.sortid   as   sortid2_,   article0_.visitcount   as   visitcount2_   from   article   article0_   order   by   article0_.visitcount   desc
20:47:27,937   DEBUG   ErrorCounter:68   -   throwQueryException()   :   no   errors
20:47:28,031   DEBUG   HQLQueryPlan:269   -   HQL   param   location   recognition   took   31   mills   (from   Article   order   by   visitcount   desc)
20:47:28,125   DEBUG   QueryPlanCache:76   -   located   HQL   query   plan   in   cache   (from   Article   order   by   visitcount   desc)
20:47:28,140   DEBUG   HQLQueryPlan:150   -   find:   from   Article   order   by   visitcount   desc
20:47:28,140   DEBUG   QueryParameters:277   -   named   parameters:   {}
20:47:28,171   DEBUG   AbstractBatcher:366   -   about   to   open   PreparedStatement   (open   PreparedStatements:   0,   globally:   0)
20:47:28,171   DEBUG   SQL:401   -   select   article0_.id   as   id2_,   article0_.title   as   title2_,   article0_.content   as   content2_,   article0_.pubtime   as   pubtime2_,   article0_.sortid   as   sortid2_,   article0_.visitcount   as   visitcount2_   from   article   article0_   order   by   article0_.visitcount   desc   limit   ?
Hibernate:   select   article0_.id   as   id2_,   article0_.title   as   title2_,   article0_.content   as   content2_,   article0_.pubtime   as   pubtime2_,   article0_.sortid   as   sortid2_,   article0_.visitcount   as   visitcount2_   from   article   article0_   order   by   article0_.visitcount   desc   limit   ?
20:47:28,171   DEBUG   AbstractBatcher:484   -   preparing   statement
20:47:28,218   DEBUG   AbstractBatcher:382   -   about   to   open   ResultSet   (open   ResultSets:   0,   globally:   0)
20:47:28,234   DEBUG   Loader:694   -   processing   result   set
20:47:28,234   DEBUG   Loader:699   -   result   set   row:   0
20:47:28,234   DEBUG   Loader:1173   -   result   row:   EntityKey[com.ukey.Blog.Article#1]
20:47:28,234   DEBUG   Loader:1355   -   Initializing   object   from   ResultSet:   [com.ukey.Blog.Article#1]
20:47:28,296   DEBUG   AbstractEntityPersister:2031   -   Hydrating   entity:   [com.ukey.Blog.Article#1]
20:47:28,328   DEBUG   Loader:699   -   result   set   row:   1
20:47:28,328   DEBUG   Loader:1173   -   result   row:   EntityKey[com.ukey.Blog.Article#8]
20:47:28,328   DEBUG   Loader:1355   -   Initializing   object   from   ResultSet:   [com.ukey.Blog.Article#8]
20:47:28,343   DEBUG   AbstractEntityPersister:2031   -   Hydrating   entity:   [com.ukey.Blog.Article#8]
20:47:28,546     INFO   StringType:182   -   could   not   read   column   value   from   result   set:   pubtime2_;   Value   '0000-00-00 '   can   not   be   represented   as   java.sql.Timestamp
20:47:28,546   DEBUG   AbstractBatcher:389   -   about   to   close   ResultSet   (open   ResultSets:   1,   globally:   1)
20:47:28,546   DEBUG   AbstractBatcher:374   -   about   to   close   PreparedStatement   (open   PreparedStatements:   1,   globally:   1)
20:47:28,546   DEBUG   AbstractBatcher:533   -   closing   statement
20:47:28,593   DEBUG   JDBCExceptionReporter:69   -   could   not   execute   query   [select   article0_.id   as   id2_,   article0_.title   as   title2_,   article0_.content   as   content2_,   article0_.pubtime   as   pubtime2_,   article0_.sortid   as   sortid2_,   article0_.visitcount   as   visitcount2_   from   article   article0_   order   by   article0_.visitcount   desc]
java.sql.SQLException:   Value   '0000-00-00 '   can   not   be   represented   as   java.sql.Timestamp


请问这是为什么吗?



------解决方案--------------------
lz好像用的是mysql数据库把?就日志来看,执行的应该是hpl2而不是hpl1.。java.sql.SQLException:Value '0000-00-00 ' can not be represented as java.sql.Timestamp
可能是你的数据库中的pubtime字段 '0000-00-00 ' 就我知道mysql中的Timestamp 不允许 '0000-00-00 '
oracle或其他数据库中我不太清楚!
------解决方案--------------------
在java中没有mysql中的数据类型datetime,在jdbc中将datetime数据类型转换为Timestamp类型,lz可以查阅一下jdbc与mysql的数据类型之间的转换表。。
出现的问题应该就是我上面所说的,虽然是你手动输入的 '0000-00-00’不是合法的Timestamp类型。。。lz可以试着做些类型的转换工作。。good luck!!!