当前使用版本(必填,否则不予处理)
3.4.2
问题:
使用 Wrapper 可以使用分页插件但是实现不了查询逻辑删除的数据。 使用 xml 写 sql,可以查询逻辑删除的数据,但是使用不了 mybatis plus 的分页插件了。 目前很矛盾呀~有啥好的解决方案吗??
Comment From: miemieYaho
https://github.com/baomidou/mybatis-plus-samples
Comment From: mouzt
哪个类?没有找到查询删除行的Wrapper写法
Comment From: setlx
自定义sql 查询被删除的记录可以使用分页和条件构造Wrapper
/**
* 逻辑删除的记录也会查询
*
* @param wrapper
* @return
*/
@Select("select ${ew.sqlSelect} from user ${ew.customSqlSegment}")
User selectOneWithDelete(@Param(Constants.WRAPPER) Wrapper wrapper);
@Select("select ${ew.sqlSelect} from user ${ew.customSqlSegment}")
Page selectPageWithDeleted(Page page, @Param(Constants.WRAPPER) Wrapper wrapper);
// 调用
Page page = new Page(1, 20);
userMapper.selectPageWithDeleted(
page,
Wrappers.lambdaQuery(User.class)
.select(
User::getId,
User::getNickname,
User::getPassword,
User::getDisable,
User::getDeleted
)
.eq(User::getMobile, mobile)
);
User user1 = userMapper.selectOneWithDelete(
Wrappers.lambdaQuery(User.class)
.select(
User::getId,
User::getNickname,
User::getPassword,
User::getDisable,
User::getDeleted
)
.eq(User::getMobile, mobile)
);
执行的sql
SELECT COUNT(*) AS total
FROM user
WHERE mobile = '17600000000'
Execute SQL:
SELECT id, nickname, password, is_disable AS disable, is_deleted AS deleted
FROM user
WHERE mobile = '17600000000'
LIMIT 20
Execute SQL:
SELECT id, nickname, password, is_disable AS disable, is_deleted AS deleted
FROM user
WHERE mobile = '17600000000'