admin

使用SelectQuery对象构建嵌套条件

sql

我可以使用该SelectQuery对象建立嵌套条件吗?

我想得到:

select * 
from car 
where ((car.color = 'blue' or car.model = 'Genesis') 
or (car.manufactor = 'ford' and car.color = 'blue'))

阅读 190

收藏
2021-06-07

共1个答案

admin

如果内联所有条件/谓词…

…那么您可以像这样将它们提供给您的SelectQuery对象:

SelectQuery query = ...
query.addConditions( ( CAR.COLOR.eq("blue") .or ( CAR.MODEL.eq("Genesis") ) )
                 .or ( CAR.MANUFACTOR.eq("ford") .and ( CAR.COLOR.eq("blue") ) ) )

我添加了一些空格以提高可读性

如果要执行动态查询构建…

…然后,您可以按照以下步骤创建谓词:

Condition condition;

condition = CAR.COLOR.eq("blue");
condition = condition.or(CAR.MODEL.eq("Genesis"));
condition = condition.or(CAR.MANUFACTOR.eq("ford").and(CAR.COLOR.eq("blue")));

两种方法完全等效。

2021-06-07