我的hql语句有问题,前台的数据不能发送到oracle数据库中,求大神帮我看一下!
String hql = "insert into oa_account(a_id, a_user_id, a_money, a_remark, a_cause, a_time, a_item, a_status)values(account_sequence.nextval, ?, ?, ?, ?, ?, ?, ?);";
this.
getHibernateTemplate().find(hql, new Object[]{ac.getA_user_id(),ac.getA_money(),ac.getA_remark(),ac.getA_cause(),ac.getA_time(),ac.getA_item(),ac.getA_status()});
//这是报的错
org.hibernate.hql.ast.QuerySyntaxException: unexpected token: values near line 1, column 94 [insert into oa_account(a_id, a_user_id, a_money, a_remark, a_cause, a_time, a_item, a_status)values(account_sequence.nextval, ?, ?, ?, ?, ?, ?, ?);]
------最佳解决方案--------------------hibernate是ORM的框架保存的直接用save(你的对象);
你非要用insert的话就用Query query=session.createSQLQuery(sql);一个一个的把你的参数用
query.setParameter(int index,Object value);
不过不建议这样。用hibernate了保存直接save要不就失去ORM的优势了
------其他解决方案--------------------保存用save
------其他解决方案--------------------我查了下HQL……
1.HQL
(1)"概述"
名称释义:HQL:Hibernate Query Language。
语法与SQL基本一致。可以通过HQL直接使用SQL语句。
2.HQL基本语法规则:
(1)在HQL中关键字不区分大小写,通常小写,类名.属性名必须区分大小写。
(2)HQL中的元素,如对象名、属性名等,都是java程序的元素,不是数据库元素。
(3)因HQL使用的都是java元素,故在HQL中可直接使用.符导航。
其中有这么条:
(2)HQL中的元素,如对象名、属性名等,都是java程序的元素,不是数据库元素。
不知道楼主的hql里面放的可是属性名?还是表的字段名?
------其他解决方案--------------------使用hibernate了保存的一般都已对象的形式去保存直接save(ac);
hibernateTemplate.find方法中的queryString参数是要hql的。你这样完全是sql的写法当然会报错
------其他解决方案--------------------find方法你里面放inster语句?
------其他解决方案--------------------厄……抱歉……是我数错了………………………………
------其他解决方案--------------------你把错误信息贴全点
------其他解决方案--------------------
org.springframework.orm.hibernate3.HibernateQueryException: unexpected token: values near line 1, column 94 [insert into oa_account(a_id, a_user_id, a_money, a_remark, a_cause, a_time, a_item, a_status)values(account_sequence.nextval, ?, ?, ?, ?, ?, ?, ?);]; nested exception is org.hibernate.hql.ast.
QuerySyntaxException: unexpected token: values near line 1, column 94 [insert into oa_account(a_id, a_user_id, a_money, a_remark, a_cause, a_time, a_item, a_status)values(account_sequence.nextval, ?, ?, ?, ?, ?, ?, ?);]
org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:660)
org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411)
org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:912)
cl.com.oa.dao.impl.AccountDAOImpl.save(AccountDAOImpl.java: