当前使用版本(必填,否则不予处理)

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'