2009-09-17 5 views
0

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

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 

ответ

1

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

+0

3 и 3 разные, проверьте первичный ключ 888880005 и 888890005 – cometta

1

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

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

+0

заявление 2 и 3 отличается, проверьте первичный ключ 888880005 и 888890005 – cometta

+1

Вот что я сказал правильно? Только первичный ключ отличается. – NickDK