Hibernate标准IN子句中的DB2组合键

时间:2010-04-26 15:08:54

标签: java sql hibernate db2

使用DB2方言的Hibernate标准生成以下SQL IN子句中的复合键,但DB2回答查询不正确:

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

但是,DB2抛出了这个:

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

1 个答案:

答案 0 :(得分:1)

正确的语法是

从tableA中选择*其中(x,y)IN( VALUES ('x1',y1))

请注意,您只指定VALUES子句一次,因此可以使用

获得多行结果

从tableA中选择*其中(x,y)IN( VALUES ('x1',y1),('x2',y2))

不知道如何让Hibernate这样做。