2009-09-17 6 views
0

J'essaye d'exécuter ces 3 instructions, succès 1 et 2, mais quand j'atteins 3 instruction, j'obtiens une erreur, est-ce parce que j'essaie d'insérer dans la même table pendant l'instruction 2 et cause 3? d'ailleurs, tous les trois à l'intérieur de la déclaration est une transaction de @springhibernate createSQLQuery insertion en vrac

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 

Répondre

1

les deux inserts sont exactement les mêmes (mêmes valeurs pour les colonnes layoutsetid,groupid,companyid,privatelayout); l'échec est dû à une contrainte de clé je suppose. Quelle est la clé primaire de votre table?

+0

tatament 2 et 3 sont différents, vérifiez la clé primaire 888880005 et 888890005 – cometta

1

Avez-vous inclus l'ensemble de la pile? Il semble y avoir quelques lignes manquantes là.

Cependant, en plus des différents layoutsetid, les deux dernières requêtes sont les mêmes, ce qui est plutôt inutile. Il y a probablement des contraintes de base de données sur la table pour éviter que cela entraîne l'erreur.

+0

déclaration 2 et 3 sont différents, vérifiez la clé primaire 888880005 et 888890005 – cometta

+1

Voilà ce que j'ai dit non? Seule la clé primaire est différente. – NickDK

Questions connexes