insert de masse avec createSQLQuery
Bonjour,
J'essaie de faire un insert de masse (insert into .. select"dans une requête hibernate en utilisant le sql natif : voici mon code
Code:
1 2 3 4 5 6 7
| Transaction transaction = session.beginTransaction();
String sqlRequete = "insert into T1";
sqlRequete = sqlRequete + "select T2.code, T2.nom";
sqlRequete = sqlRequete + " from T2 where T2.TYPE='N'" ;
SQLQuery query = session.createSQLQuery(sqlRequete);
query.executeUpdate(); |
Et voici ce que j'ai comme message erreur
Code:
1 2 3 4 5 6 7 8
| javax.servlet.ServletException: java.lang.UnsupportedOperationException: Update queries only supported through HQL
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:516)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:423)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803) |
J'ai écrit une requête avec un "update" et c'est la même chose.
J'ai essayé aussi en vain avec "Query query = session.createSQLQuery(sqlRequete);"
Je précise que cette application utilise hibernate ; mais que pour des besoins internes et exceptionnellement je dois utiliser cet insert de masse.
Merci d'avance
Chris.