浏览 6942 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-02-19
环境是:Hibernate 3.0.5/3.1.2 + MySQL 4.1.12/4.0.21(意思就是每个东西的两个版本都试验过,结果一样,属于实验无关项) 问题是这样的。只要我的HQL写成“?”占位符(不是“:name”这样的形式),那么拿到Query对象后,执行setParameter(0, obj)这样的操作,就会有问题。通过我在三台不同机器上的试验,问题分这样几种情况: 1、再对query对象做一下setMaxResults()或者setFirstResult(),则报异常。异常信息大概是下面这个样子: Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not execute query at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:65) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.loader.Loader.doList(Loader.java:2148) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029) at org.hibernate.loader.Loader.list(Loader.java:2024) at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:375) at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:308) at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:153) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1129) at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79) at test.HibernateTest.main(HibernateTest.java:45) Caused by: java.sql.SQLException: No value specified for parameter 4 ... 后面就不说叻,异常的意思就是有一个parameter没有设置。而事实上,这个parameter我没有写。比如我写两个?,再设置一次setMaxResults(),那么输出的SQL里应该是有3个?,前两个是我自己写的,后面那个是MySQL的分页输出limit ?。但是这个时候它会报No value specified for parameter 4。。。 2、即使不设置setMaxResults(),再有的机器上也报错,也即根本没法用setParameter(int, Object)方法。。。 我想我还是不多说叻,大家如果不忙的话,可以试一下,MySQL的JDBC驱动无所谓(事实上我用3.0.17/3.1.8/3.1.10/3.1.12全试过),如果你能成功地使用setParameter(int, Object)这个方法而毫无问题,请一定详细地告诉我。。。 补充:相同的代码,去连Oracle数据库(表结构一样),就没任何问题。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-02-19
我看MySQL JDBC Driver文档上面说到5.0.x以上版本才真正支持PreparedStatement。
|
|
返回顶楼 | |
发表时间:2006-02-19
又一次刚问完问题就遇到robbin,真是感动。
我从昨晚2点一直搞这个问题,现在已经没有力气下载MySQL 5.x来继续研究叻。。。 我google叻狠久,在forum.hibernate.org上也search过,没有发现有人跟我有相同的问题。可是,从常理上讲,Hibernate+MySQL用的人绝对不少,不可能没有人遇到setParameter(int, Object)问题,我为叻搞清是不是我自己机器的问题,先后动用叻两台笔记本电脑和一台服务器。。。 恳请robbin能帮个忙,帮我解决这个问题。。。 |
|
返回顶楼 | |
发表时间:2006-02-19
。。。我虽然狠困,但是躺在床上还是睡不着,于是爬起来装叻MySQL 5.0.18。
现在所有的问题都不见叻。。。包括我在这个帖子里说的: http://forum.iteye.com/viewtopic.php?t=18642 打扰robbin叻,呵呵。看来真的是MySQL 4.x的问题。 |
|
返回顶楼 | |
发表时间:2006-02-19
我用4.1.x没有你这样的问题
|
|
返回顶楼 | |
发表时间:2006-02-19
的确狠奇怪~不过我也懒得研究叻。。。
|
|
返回顶楼 | |