前天把项目从tomcat转至weblogic11的时候发现了这么一个问题,
工作台提示"标示符无效",网上查了都没有什么类似的情况,
细一看,数据库里的字段加了下划线,实体类里的属性却没有加,起初认为是HQL写得不规范没有用参数化,也就是用问号来作预编译,
故而昨天改了一天,把HQL全部改成了问号模式而不是拼接字符串的方式,但是问题依旧存在,
估计是hibernate和weblogic11有些地方太过严谨或者是不兼容。
最后得出两种处理方法,第一种是纯用sql,不管是拼接字符串还是用问号预编译,都能成功
第二种是再hibernate属性中加上这么一段话:
<prop key="hibernate.query.factory_class">
org.hibernate.hql.classic.ClassicQueryTranslatorFactory
</prop>
然后再把所有的HQL加上别名,例如:
from movie m,movieinfo mi where m.movieid=mi.movieid
解决Hibernate与WebLogic HQL问题
本文描述了将项目从Tomcat迁移至WebLogic 11过程中遇到的HQL错误提示“标示符无效”的问题及解决方案。通过调整Hibernate配置和使用经典查询转换工厂,最终解决了实体类字段与数据库字段不匹配导致的问题。
59

被折叠的 条评论
为什么被折叠?



