Надгробие MyBatis

В проекте spring-boot, если вы хотите логическое удаление, вам нужно добавить новый столбец в базу данных, чтобы указать, следует ли фильтровать или не отображать.

Например, установить поле удалено, значение по умолчанию равно 0, что указывает на то, что оно не было удалено.При удалении изменить поле на 1, что указывает на то, что оно было удалено, и добавить условие фильтрации, где удалено = 0 при фильтрации.

Оператор sql выше нужно писать вручную, но в mybatis-plus такая аннотация @TableLogic предусмотрена. В классе сущности отметьте аннотацию на удаленном поле и настройте ее глобально в файле yml, и логическое удаление может быть реализовано автоматически через removeById, Просто используйте @Delete, и вам не нужно использовать @Update, чтобы вручную изменить его.

YML-конфигурация:

mybatis-plus:
  global-config:
    db-config:
      logic-delete-field: deleted # set deleted logicDelete
      logic-delete-value: 1 # deleted
      logic-not-delete-value: 0 # exist

Перед настройкой этой аннотации, после использования removeById, проверьте базу данных, данные будут фактически удалены, а данные в базе данных исчезнут.После настройки использование removeById только изменит удаленное поле на 1 и использует метод запроса в mybatis-plus, например .list() и т. д., чтобы данные с удаленным = 1 не отображались.

Уведомление:

Из-за конфигурации этой аннотации при использовании метода setDeleted(1) и выполнении updateById() этот метод больше не будет действовать. После комментирования аннотации и конфигурации метод может вступить в силу. Обратите внимание, что комментирование аннотаций само по себе не вступит в силу.

Однако, если вы используете операторы sql для внесения изменений в файл сопоставления после настройки, это может вступить в силу, вероятно, потому, что оно напрямую работает с базой данных, поэтому идея не может управлять этим.

Guess you like

Origin blog.csdn.net/u014641168/article/details/130320848