数据截图:
第一种:姓梅并且(年龄<30或邮箱不为空)
原始sql:
select * from user where name like '梅%' and (age < 30 or email is not null);
查询方法:
@Autowired
private UserMapper userMapper;
@Test
public void test() {
LambdaQueryWrapper<User> userQueryWrapper = Wrappers.<User>lambdaQuery()
.likeRight(User::getName, "梅")
.and(wq -> wq.lt(User::getAge, 30)
.or().isNotNull(User::getEmail));
List<User> users = userMapper.selectList(userQueryWrapper);
System.out.println(users);
}
结果:
[User(id=1, name=梅长苏, age=30, email=mei@qq.com, parentId=null, createTime=Fri Jan 11 14:20:20 CST 2019)]
第二种:姓梅或者(年龄<30并且年龄>20并且邮箱不为空)
原始sql:
select * from user where name like '梅%' or (age < 30 and age > 20 and email is not null);
查询方法:
@Autowired
private UserMapper userMapper;
@Test
public void test2() {
LambdaQueryWrapper<User> userQueryWrapper = Wrappers.<User>lambdaQuery()
.likeRight(User::getName, "梅")
.or(wq -> wq.lt(User::getAge, 30)
.gt(User::getAge, 20)
.isNotNull(User::getEmail));
List<User> users = userMapper.selectList(userQueryWrapper);
System.out.println(users);
}
结果:
[User(id=1, name=梅长苏, age=30, email=mei@qq.com, parentId=null, createTime=Fri Jan 11 14:20:20 CST 2019),
User(id=2, name=靖王, age=25, email=jin@qq.com, parentId=1, createTime=Tue Feb 05 11:12:22 CST 2019),
User(id=3, name=夏首尊, age=28, email=xia@qq.com, parentId=2, createTime=Thu Feb 14 08:31:16 CST 2019)]
第三种:(年龄<30或邮箱不为空)并且姓梅
原始sql:
select * from user where (age < 30 or email is not null) and name like '梅%';
查询代码:
@Autowired
private UserMapper userMapper;
@Test
public void test3() {
LambdaQueryWrapper<User> userQueryWrapper = Wrappers.<User>lambdaQuery()
.nested(wq -> wq.lt(User::getAge, 30)
.or()
.isNotNull(User::getEmail))
.likeRight(User::getName, "梅");
List<User> users = userMapper.selectList(userQueryWrapper);
System.out.println(users);
}
结果:
[User(id=1, name=梅长苏, age=30, email=mei@qq.com, parentId=null, createTime=Fri Jan 11 14:20:20 CST 2019)]