原以为是自己hql语句的问题, 后来发现不管怎么测试 只要是用find() 查询hql 都有这个异常 才怀疑是环境配置的问题.
结论:
antlr-2.7.2.jar和antlr-2.7.6.jar 包冲突 ,需要在MyEclipse里屏蔽掉版本低的2.7.2 .
步骤:
Window->Preferences->MyEclipse->Project Capabilities->然后选中Struts-> 找到antlr-2.7.2-> 右边Remove掉就好了
之后在tomcat目录下搜出antlr-2.7.2.jar删掉 ( 调试失败那一次,拷贝进WEB-INF/lib中的 )
原因是:
Struts2(或者Struts1.x)自带antlr-2.7.2.jar ,Hibernate3自带antlr-2.7.6.jar ,结果在HQL时就冲突了.
直接搜出全部antlr-2.7.2.jar删掉也不行, 我这MyEclipse10会自动上网上下载 等于你根本删不掉.