逻辑后缀字段
查询对象中,字段名称以And/Or结尾的字段被称为逻辑后缀字段。默认情况下,查询对象各个字段对应的查询条件之间通过AND连接,通过为字段定义And/Or后缀可以指定连接查询条件的逻辑运算符。定义如下:
public class UserQuery extends PageQuery {
// ...
private List<String> nameStartOr;
private UserQuery userOr;
private List<UserQuery> usersOr;
private UserQuery userAnd;
}后缀Or
当字段的名称以Or结尾时,连接查询条件的逻辑运算符为OR,支持以下三种字段类型:
List<String> nameStartOr;
UserQuery userQuery = UserQuery.builder().nameStartOr(List.of("Bob","John","Tim")).build();
List<UserEntity> users = userDataAccess.query(userQuery);
// SQL="SELECT id, name, score, memo, deleted FROM t_user
// WHERE (name LIKE ? OR name LIKE ? OR name LIKE ?)" args="[Bob% John% Tim%]"UserQuery userOr;
UserQuery userQuery = UserQuery.builder().nameStartOr(Arrays.asList(1, 4, 12)).deleted(trur).build();
List<UserEntity> users = userDataAccess.query(userQuery);
// SQL="SELECT id, name, score, memo, deleted FROM t_user
// WHERE (id IN (?, ?, ?) OR deleted = ?)" args="[1 4 12 true]"List<UserQuery> usersOr;
后缀And
当字段的名称以And结尾时,连接多个查询条件的逻辑运算符为AND。示例如下:
相关文章
在DoytoQuery中怎么表达select * from t where id = ? or (name = ? and age = ?)
最后更新于
这有帮助吗?