Kiss__to
Kiss__to
2021-04-02 21:42
采纳率: 69.2%
浏览 1.0k
已采纳

mybatis-plus 逻辑删除后的值如何查询到?

如上,逻辑删除后 除了自己重写mapper 查询语句,还有别的(MP提供的)办法获取吗?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • GOGO_912
    西红柿炒鸡蛋Ooo 2021-04-03 23:00
    已采纳
    <choose>
    	<when test="ew != null and ew.sqlFirst != null">
    		${ew.sqlFirst}
    	</when>
    	<otherwise></otherwise>
    </choose> 
    
    SELECT 
    
    <choose>
    	<when test="ew != null and ew.sqlSelect != null">
    		${ew.sqlSelect}
    	</when>
    	<otherwise>param1,param2,param3</otherwise>
    </choose> 
    
    FROM tableName
    
    <where>
    	<choose>
    		<when test="ew != null">
    			<if test="ew.entity != null">
    				<if test="ew.entity.id != null">id=#{ew.entity.id}</if>
    
    			</if>
    			AND deleted='0'
    			<if test="ew.sqlSegment != null and ew.sqlSegment != '' and ew.nonEmptyOfNormal">
    				AND ${ew.sqlSegment}
    			</if>
    			<if test="ew.sqlSegment != null and ew.sqlSegment != '' and ew.emptyOfNormal">
    				${ew.sqlSegment}
    			</if>
    		</when>
    		<otherwise>
    			deleted='0'
    		</otherwise>
    	</choose>
    </where> 
    
    <choose>
    	<when test="ew != null and ew.sqlComment != null">
    		${ew.sqlComment}
    	</when>
    	<otherwise></otherwise>
    </choose>
    

    这是mybatisplus selectList方法用的动态SQL模板。主要看deleted='0'。整体看下来没有给任何机会解决不自动添加deleted='0'的机会。我试着去建议使用

    <if test="ew.ignoreTableLogic != true">
        AND deleted='0'
    </if>

    给wapper添加ignoreTableLogic ,可以由使用者来控制是否携带逻辑判断请求。当然默认是携带的。

    点赞 评论
  • GOGO_912
    西红柿炒鸡蛋Ooo 2021-04-03 02:45

    mybatis-plus支持配置全局逻辑删除字段和删除标识,如1代表逻辑删0代表没逻辑删。同时也支持注解的方式,某个entity中代表逻辑删除的字段添加注解@TableLogic。配置后mybatis的所有mapper会自动拼接逻辑删判断语句,自己写的mapper就要显示的添加逻辑删判断语句。不过mybatis已经蜕变成了真正的ORM框架,没必要自己写sql了。

    点赞 评论
  • weixin_49843059
    余又井 2021-05-21 14:47

    官网的建议,我也找了半天没找到好的办法

    点赞 评论
  • weixin_45900215
    weixin_45900215 2021-05-24 10:35

    你好 有好的解决办法了不

    点赞 评论

相关推荐