updateById()を使用して、フィールドを手動でnullに更新します

nullではないクエリ結果のフィールドの値をnullに更新したいのですが(データベース設計ではnullにすることができます)、
結果としてフィールドの更新に失敗し、クエリ結果は引き続き更新方法

ここに画像の説明を挿入
解決策
1.グローバルフィールド戦略を設定する

構成ファイルで、次のように戦略を変更できます。

#properties文件格式:
mybatis-plus.global-config.db-config.field-strategy=ignored

#yml文件格式:
mybatis-plus:
  global-config:
  	#字段策略 0:"忽略判断",1:"非 NULL 判断",2:"非空判断"
    field-strategy: 0

これはグローバル構成であり、すべてのフィールドで判断が無視されます。一部のフィールドを変更したくないが、値が渡されたときに渡されない場合、それらはnullに更新され、他のビジネスデータの正確性に影響を与える可能性があります。

2.フィールドに個別のフィールド戦略を設定します

特定の状況に応じて、更新が必要なフィールドの検証アノテーションを調整します。たとえば、空でないことを確認します。
@ TableField(strategy = FieldStrategy.NOT_EMPTY)

この場合、次のように、nullに更新する必要があるフィールドに無視戦略を設定するだけで済みます。

ここに画像の説明を挿入

上記の方法を使用すると、このように処理する必要のあるフィールドが多数ある場合、各フィールドに注釈を追加する必要がありますが、これは少し面倒に思えます。

次に、フィールドに注釈を追加せずに正常に更新できる3番目の方法の使用を検討できます。

3. UpdateWrapperを使用して更新します(フィールドが多すぎる場合は、さらに書き込むことができます)

mybatis-plusでは、updateByIdメソッドに加えて、updateメソッドも提供されています。updateメソッドを直接使用して、フィールドをnullに設定することもできます。

おすすめ

転載: blog.csdn.net/qq_40145879/article/details/107865299