hibernate createSQLQuery массовая вставка - PullRequest
0 голосов
/ 17 сентября 2009

Я пытаюсь выполнить эти 3 оператора, 1 и 2 успеха, но когда достигаю 3 оператора, я получаю ошибку, это потому, что я пытаюсь вставить в ту же таблицу в операторе 2 и вызвать оператор 3 неудачно? кстати, все 3 оператора находятся внутри одной транзакции @spring

session.createSQLQuery(" select groupid from group_ where groupid = 888880005").executeQuery;//executed ok 

session.createSQLQuery(" insert into layoutset (layoutsetid,groupid,companyid,privatelayout,logo,logoid,themeid,colorschemeid, wapthemeid,wapcolorschemeid,pagecount) values (888880005, 888880005, 1,0,0,0,'classic','03','mobile','01',0) ").executeUpdate();//executed ok 

session.createSQLQuery(" insert into layoutset (layoutsetid,groupid,companyid,privatelayout,logo,logoid,themeid,colorschemeid, wapthemeid,wapcolorschemeid,pagecount) values (888890005, 888880005, 1,0,0,0,'classic','03','mobile','01',0) ").executeUpdate(); //this fail with

com.liferay.portal.kernel.dao.orm.ORMException: could not execute native bulk manipulation query
            at com.liferay.portal.dao.orm.hibernate.ExceptionTranslator.translate(ExceptionTranslator.java:41)
            at com.liferay.portal.dao.orm.hibernate.SQLQueryImpl.executeUpdate(SQLQueryImpl.java:70)
            at com.company.service.companyPersistenceImpl.doTest(companyPersistenceImpl.java:53)
            at com.company.service.companyLocalServiceImpl.doTest(companyLocalServic

Ответы [ 2 ]

1 голос
/ 17 сентября 2009

Вы включили всю трассировку стека? Кажется, там пропущено несколько строк.

Однако, кроме разной схемы размещения, два последних запроса одинаковы, что довольно бессмысленно. Вероятно, существуют некоторые ограничения базы данных в таблице, чтобы предотвратить это, что приводит к ошибке.

1 голос
/ 17 сентября 2009

две вставки абсолютно одинаковы (одинаковые значения для столбцов layoutsetid,groupid,companyid,privatelayout); я думаю, ошибка связана с ограничением ключа. какой первичный ключ вашей таблицы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...