Bonjour, voilà j'ai un petit soucis avec une requête d'insert de masse en HQL, elle ne passe pas et me génère une exception ( ).
Le petit bout de code incriminé (SGBD Oracle) :
Les variables code et role sont bien évidemment passées en paramètres et je ne renseigne pas l'id car j'ai une sequence Oracle - j'ai déjà testé le cas où je renseigne "manuellement" l'id.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 String sqlRequete = "insert into Function "; sqlRequete = sqlRequete + "(version, code, role, application, number, functionCode) "; sqlRequete = sqlRequete + "select Function.version, '" + Code + "', '" + role + "', "; sqlRequete = sqlRequete + "Function.application, Function.number, Function.functionCode "; sqlRequete = sqlRequete + "from function Function "; sqlRequete = sqlRequete + "where f.functionCode = 'LA' "; query = getPersistenceManager().createQuery(sqlRequete); result = query.executeUpdate();
Je ne pense pas que cela puisse venir d'un problème de fichiers de configuration car mes requêtes HQL de select marchent très bien, ainsi que les insert, update et delete réalisées via l'hibernate session.
L'exception générée :
J'avoue que j'y perd mon latin^^
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 org.hibernate.hql.ast.QuerySyntaxError: unexpected token: insert near line 1, column 1 [insert into Function (version, code, role, application, Number, FunctionCode) select function.version, '54', 'UPM', Function.application, Function.Number, Function.FunctionCode from Function Function where Function.FunctionCode = 'LA' ]
J'ai réellement besoin d'un coup de pouce car cela me semble tellement idiot que j'ai du zapper un élément totalement évident^^
Merci d'avance!
Partager