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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.