复合键,相比之下

Nim*_*sky 5 java sql oracle hql

我有三个字段,在表上形成一个唯一的复合键.

我想传入索引匹配的3个不同的数组.

custIds= [0,1,2]
custLetters = [A,B,C]
products = ["Cheese","lemons","Aubergine"]
Run Code Online (Sandbox Code Playgroud)

是否有一个sql语句将返回所有三行(假设它们存在),只是组合via in将无法工作,因为"误报":

select * from mytable 
where custId in (custIds)
 and custLetters in (custLetters)
and product in (products);
Run Code Online (Sandbox Code Playgroud)

数据库oracle,但通过hibernate hql,所以ansi首选如果可能?

ibr*_*041 1

OT:您的 SQL 查询可能是错误的。它应该是:

select * from mytable 
where (custId, custLetters, product) 
in ( (0, 'A', 'Cheese'),
 (1, 'B', 'lemons'),
 (2, 'C', 'Aubergine'));
Run Code Online (Sandbox Code Playgroud)

我不知道 Hibernate 是否可以生成这样的查询。Butin只是连接和析取的语法糖。