一个莫名其妙的问题,求助
在用hibernate操作数据库的时候,session.createQuery(sql).executeUpdate();使用的这个方法。。然后抛出异常:
org.hibernate.exception.SQLGrammarException: could not execute native bulk manipulation query
说明一下,我的sql语句没有问题,是一个批量插入的语句,我把后台hibernate打印的语句,放在plsql里面是可以执行的,大概插入1W多条吧。。说明不是sql语句的问题。
大侠,求解。。
------最佳解决方案--------------------
那你把sql贴出来吧,再把session.createQuery(sql).executeUpdate();这一句的完整代码也贴出来
------其他解决方案--------------------sql里的字段是跟实体的名称对应吗
------其他解决方案--------------------直接用的sql,跟实体无关
------其他解决方案--------------------不知道你的sql是怎么写的
建议你把createQuery换成createSQLQuery在试试
提醒一下,SQL与HQL是不一样的
------其他解决方案--------------------这个我都知道的。。sql确实没关系,执行的方法是createSQLQuery,上面我打错了。
我是先在plsql里面写的语句,确定语句可以执行了以后,才copy到代码里面的
------其他解决方案--------------------那就把createSQLQuery换成createQuery
------其他解决方案--------------------看这里
英文的解释,我看了,很容易懂的
------其他解决方案--------------------这个帖子我看过了。。。。要按照里面的方法试过了。。本来我就是createSQLQuery,按照这个帖子说的,改成了createQuery,还是不行。。
------其他解决方案--------------------
sql语句
String sql =
"insert into ia_generalledger\n" +
" select ia_generalledger_seq.nextval, --id\n" +
" a.stockorgid, " +
" a.styleid, " +
" a.fiscal_year, " +
" a.fiscal_month, " +
" a.innum, " +
" a.inamount, " +
" a.outnum, " +
" a.outamount, " +
" a.num, " +
" a.price, " +
" a.amount, " +
" null,\n" +
" null,\n" +
" null,\n" +
" null,\n" +
" null,\n" +
" null,\n" +
" null,\n" +
" null,\n" +
" null,\n" +
" null,\n" +
" null,\n" +