mybatisplus 如何根据字段去重
时间: 2023-07-29 19:06:38 浏览: 283
如何实现java8 list按照元素的某个字段去重
5星 · 资源好评率100%
在 MyBatis-Plus 中,可以使用 Wrapper 来实现根据字段去重查询的功能。下面是一个示例代码,演示了如何使用 MyBatis-Plus 进行字段去重查询:
```java
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
@Autowired
private UserMapper userMapper;
public List<User> queryDistinctByField(String field) {
QueryWrapper<User> queryWrapper = Wrappers.query();
queryWrapper.select(field).groupBy(field);
return userMapper.selectList(queryWrapper);
}
public Page<User> queryDistinctByFieldWithPage(String field, long current, long size) {
Page<User> page = new Page<>(current, size);
QueryWrapper<User> queryWrapper = Wrappers.query();
queryWrapper.select(field).groupBy(field);
return userMapper.selectPage(page, queryWrapper);
}
}
```
上述示例中,`User` 是实体类,`UserMapper` 是对应的 MyBatis-Plus 的 Mapper 接口。在 `queryDistinctByField` 方法中,我们使用 `QueryWrapper` 来构建查询条件,使用 `select` 方法指定要查询的字段,并使用 `groupBy` 方法来进行分组去重。最后,通过 `selectList` 方法执行查询。
如果需要分页查询,可以使用 `queryDistinctByFieldWithPage` 方法,传入分页参数,并通过 `selectPage` 方法执行分页查询。
这样,就可以使用 MyBatis-Plus 实现根据字段去重的查询功能。
阅读全文