浏览 3380 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-10-25
比如我的HQL如下: String hql=" from JstgLjdm where jstgLjdmId='11'"; JstgLjdm 是表jtsg_ljdm的映射,jstgLjdmId 是字段jtsg_ljdm_id的映射。 可是在执行的时候却报jstgLjdmId 无效的标识符。查看输出的sql语句为: select XX字段 from JSTG_LJDM jstgljdm0_ where (jstgLjdmId='11' ) 即JstgLjdm 已经能够翻译成表JSTG_LJDM,但是jstgLjdmId却没有能够翻译成jtsg_ljdm_id. 我确认hibernate映射文件没有问题。 如果我把我的HQL写成如下: String hql=" from JstgLjdm where jstg_Ljdm_Id='11'"; 执行就是完全正确的。 不知道是什么原因,请哪位有经验的人士指点一下。 说明一下: 我执行HQL用的是这个方法。 Query query = getSession().createQuery(hql); list = query.list(); 并且hiberante3在weblogic8上部署要解决antlr.jar的问题,我已经通过在hibernate.properties文件中增加属性:hibernate.query.factory_class,属性的值是org.hibernate.hql.classic.ClassicQueryTranslatorFactory的方法解决问题了。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-10-25
WebLogic8.16版本解决了antlr.jar 版本冲突的问题。
|
|
返回顶楼 | |
发表时间:2007-10-25
但是客户那边只有WebLogic8.15版本。
而且问题已经解决。解决办法是通过别名。即HQL应写成 String hql=" from JstgLjdm j where j.jstgLjdmId='11'"; |
|
返回顶楼 | |
发表时间:2007-10-25
汗,这表名、字段名也取的太恶心了吧
|
|
返回顶楼 | |
发表时间:2007-11-16
在weblogic启动的cmd文件里setPath中加入你工程里lib下面antsl**.jar包,就可以使用hibernate3的HQL了
|
|
返回顶楼 | |