使用Criteria API是否可以生成带有“行值”的 WHERE 子句?
像this
SELECT * FROM t1 WHERE (column1,column2) < (1,1);
用例:假设我们可以从客户端接收可变长度的参数列表。
如果客户发送了一个参数A
,那么我想生成例如SELECT * FROM t1 WHERE c1 < ?
如果客户端发送两个参数A
和B
,则SELECT * FROM t1 WHERE c1 < ? OR ((c1 = ?) AND (c2 < ?))
以此类推,最多N个参数。
当然,我可以使用Criteria的and
,or
等方法来实现这种逻辑,但是使用“行值”语法,实现会更加简单。
所以,我的问题是Criteria API中是否有一些方法可以帮助使用行值语法构建SQL