LambdaQueryWrapper 查询自定义字段
时间: 2023-07-06 13:26:15 浏览: 179
LambdaQueryWrapper 是 MyBatis-Plus 提供的一个用于构建 SQL 查询条件的工具类。如果你想要查询自定义字段,可以使用 select() 方法来指定查询的字段。
例如,假设你有一个实体类 User,其中包含了 name 和 age 两个字段,还有一个自定义字段 hobby,你可以使用如下代码查询所有用户的 name、age 和 hobby:
```java
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.select(User::getName, User::getAge, "hobby");
List<User> userList = userService.list(queryWrapper);
```
在这个例子中,select() 方法接收一个 Vararg 参数,可以传入任意数量的 Function 接口实例或者字符串,其中 Function 接口实例表示查询实体类的某个字段,字符串表示查询数据库表中的某个字段。因此,我们可以通过 User::getName 和 User::getAge 来查询实体类 User 中的 name 和 age 字段,通过 "hobby" 字符串来查询数据库表中的 hobby 字段。
注意,如果你的自定义字段是实体类中的一个属性,那么你可以直接使用实体类的属性名来查询,不需要使用字符串。如果你的自定义字段不是实体类中的一个属性,那么你需要使用字符串来查询。
相关问题
LambdaQueryWrapper 自定义字段排序
LambdaQueryWrapper是Mybatis-Plus中的一个查询构造器,可以用于构建复杂的查询条件。如果需要自定义字段排序,可以使用LambdaQueryWrapper的orderBy方法,例如:
```
LambdaQueryWrapper<Student> wrapper = new LambdaQueryWrapper<>();
wrapper.orderByAsc(Student::getAge); // 按照年龄升序排序
wrapper.orderByDesc(Student::getName); // 按照姓名降序排序
List<Student> students = studentMapper.selectList(wrapper);
```
其中,orderBy方法接受一个Function类型的参数,用于指定排序字段。在上面的例子中,Student::getAge和Student::getName分别表示按照年龄和姓名排序。
LambdaQueryWrapper如何添加字段长度查询条件
LambdaQueryWrapper可以使用lambda表达式来添加字段长度查询条件,示例如下:
```java
LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();
wrapper.like(User::getName, "张三").and(l -> l.eq(User::getAge, 18).gt(User::getName, "张三").lt(User::getName, "李四").isNotNull(User::getEmail).apply("(age+1)={0}", 19));
wrapper.last("limit 1");
List<User> userList = userMapper.selectList(wrapper);
```
上述代码中,LambdaQueryWrapper的like方法可以添加字段值匹配,and方法可以添加多个查询条件,包括eq(等于)、gt(大于)、lt(小于)、isNotNull(不为null)等,last方法可以在SQL的最后添加自定义的SQL,此处添加了limit 1(仅查询一条记录)。
阅读全文