hql-HQL中使用占位符查询mysql数据老是报错...

问题描述

HQL中使用占位符查询mysql数据老是报错...

执行语句如下:
Session session = HibernateUtil.getSession();
String hql = "from Category where name=?";
Query query = session.createQuery(hql);
query.setString(0, "饮品");
错误:
ava.lang.NoSuchMethodError: org.hibernate.hql.antlr.HqlBaseParser.recover(Lantlr/RecognitionException;Lantlr/collections/impl/BitSet;)V

解决方案

1、检查是否有antlr包
2、看一下hql语句是否正确,Category 是否有对应的实体类,name是否有对应的属性

解决方案二:

这些都是没问题的 我换成SQL就没有问题,用简单的hql也可以(
String hql = "from Category";
Query query = session.createQuery(hql);)
就是使用占位符就不行了 在执行这句就报错

解决方案三:

如果antlr包、Category实体类、name属性都没有问题,那应该是HQL语句的问题。
你试把HQL语句写成“select c from Category c where name=?”试试。

解决方案四:

是jar包的问题,我导入的是Struts2的antlr-2.7.2.jar,现在换成hibernate的antlr-2.7.7.jar就可以了

时间: 2024-09-13 13:59:12

hql-HQL中使用占位符查询mysql数据老是报错...的相关文章

mysql数据1135报错问题解决办

错误提醒 Error:Cantcreateanewthread(errno12).Ifyouarenotoutofavailablememory,youcanconsultthemanualforapossibleOS-dependentbug Errno.:1135 解决办法 1,升级glibc版本. 2,修改配置文件 /etc/my.cnf [mysqld]下增加 innodb_thread_sleep_delay=40 wait_timeout=100 interactive_timeou

java操作XML中的占位符

有时XML的某些内容是待定的,对于这些内容可以在XML文件中使用占位符 <people> <person id="001"> <name>$name</name> <age>$age</age> </person> </people>   读取该文件的时候可以为其中的占位符设置值 /** * IO操作工具类 * * @author 徐越 * */ public class IOUtils {

原生sql hibernate-用原生sql查询 为什么实体类中存在该字段,但为什么还是报错列名无效

问题描述 用原生sql查询 为什么实体类中存在该字段,但为什么还是报错列名无效 这是dao层 ds = HibernateDataSource.getHibernateDataSource(); session = ds.getSession(); String sql1="SELECT CHANNEL_ID FROM JC_CHANNEL WHERE PARENT_ID='"+ channelId + "'"; SQLQuery sqlQuery1 = sessi

数据-Mysql中设置表的外键的时候报错

问题描述 Mysql中设置表的外键的时候报错 这个是原句子: ALTER TABLE emp ADD CONSTRAINT id_fk FOREIGN KEY (deptno) REFERENCES Dept (deptno); 就是想把emp表的deptno设置为外键,该列的数据引用Dept表的主键列deptno的数据.然后,报错信息如下: Cannot add or update a child row: a foreign key constraint fails (emp.#sql-1a

ssh框架-SSH框架整合的注册登陆例子,hql老是报错。注册可以运行,求大侠解救

问题描述 SSH框架整合的注册登陆例子,hql老是报错.注册可以运行,求大侠解救 这个是登陆源码 public boolean loginObject(User user) throws HibernateException{ System.out.println("6666666666666"); //String hql=("from User u where?u.username=? and u.password=?",user.getUsername(),u

mybatis查询是传参报错的处理

mybatis查询是传参报错的处理 自己用的数据库是mysql数据库,用mybatis管理,java后台是 spring框架, 控制台出现: 1 There is no getter for property named 'xxxx' in 'class java.lang.Integer 错误,查了一下,以为是xml中的sql的参数类型有错误,后来改了,不是,网上说改: <select id="selectAllUserByName" resultType="User

javamail truts-做后台发送邮件,用main测试好试,单合到项目中Action里就没用,也没报错

问题描述 做后台发送邮件,用main测试好试,单合到项目中Action里就没用,也没报错 import javax.mail.Message.RecipientType; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.interne

c++-将类中的成员函数写出来后,报错:本地函数非法

问题描述 将类中的成员函数写出来后,报错:本地函数非法 #include #include #include #include #include #include using namespace std; class Student{ private: string name[10];//姓名 int number;//学号 int age;//年龄 char xingbie;// 性别 char banji;//班级 string birthday;//出生年月 string dizhi;//

java spring-maven 项目中修改项目的包名后重新启动报错

问题描述 maven 项目中修改项目的包名后重新启动报错 原来项目运行时正常的,后来把com.fh.controller.information.picture.PictureController 和com.fh.service.information.picture.PictureService修改为com.fh.controller.information.PictureController 和com.fh.service.information.PictureService后出错 启动项目