mybatis配置的邏輯刪除不好使了


在使用mybatisplus中,可使用邏輯刪除。案例中,使用mybatisplus逆向生成model,使用delete_status為識別邏輯刪除字段。

springboot 中配置啟動邏輯刪除

mybatis-plus:
  global-config:
    db-config:
      id-type: auto
      logic-delete-value: 1
      logic-not-delete-value: 0

在生成的model實體類中配置邏輯刪除字段注解 @TableLogic

public class User extends Model<User> {

    private static final long serialVersionUID=1L;

    /**
     * 主鍵id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 邏輯刪除值,1刪除,0未刪除
     */
    @TableLogic
    private Boolean deleteStatus;

    ...  
    
}

1.使用mybatisplus的api查詢

 @Test
 public void testDeleteStatus() {
     List<User> list = userService.list(new QueryWrapper<User>());
     System.out.println(list);
 }

在控制台打印的sql自動拼接delete_status = 0

Consume Time:24 ms 2020-03-27 19:20:39
Execute SQL:SELECT id,user_name,true_name,avatar,indentity_crad,email,mobile,wechat_openid,unionid,password,gender,
last_login_ip,last_login_time,login_times,user_from,reg_ip,delete_status,create_time,update_time FROM user WHERE delete_status
=0

 

 2.自己自定義一個xml文件,編寫一個查詢

<mapper namespace="com.finance.admin.mapper.UserMapper">
 
    <select id="testDelete"
            resultType="com.finance.admin.vo.UserDetailsVO">
        select u.user_name as userName, u.mobile as mobile, u.create_time as createTime, u.last_login_time as last_loginTime
        from `user`
        order by create_time desc
    </select>
</mapper>

 添加mapper執行結果:

 Consume Time:14 ms 2020-04-21 16:33:24
 Execute SQL:select u.user_name as userName, u.mobile as mobile, u.create_time as createTime, u.last_login_time as last_loginTime 
from `user` u order by create_time desc

 

 結果來看,使用自定義的sql為拼接邏輯刪除字段。需要我們自己sql中拼接上去。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM