2010-04-26 8 views
0

critères Hibernate, en utilisant le dialecte DB2, génère l'instruction SQL suivante avec clés composites dans la clause IN, mais les réponses DB2 que la requête est incorrecte:critères Hibernate clés composites DB2 dans clause IN

select * from tableA where (x, y) IN (('x1', y1)) 

mais, DB2 lance ceci:

SQL0104N An unexpected token "," was found following ", y) in (
('x1'". Expected tokens may include: "+". SQLSTATE=42601 
+0

Comment l'appel de critères ressemble, peut-être l'erreur est là? – khmarbaise

Répondre

1

la syntaxe correcte serait

select * from tableA où (x, y) (VALEURS ('x1', y1))

Remarque vous spécifiez la clause VALUES une seule fois, donc un plusieurs lignes les résultats pourraient être obtenus avec

select * from tableA où (x, y) (VALEURS ('x1', y1), ('x2', y2))

Je ne sais pas comment faire Hibernate, cependant.