mybatisPlus のハンプ構成

私が使用する springboot プロジェクトは mybatisPlus を使用していますが、xml ファイルも持っています。xml にはフィールド名とエンティティ属性名を 1 対 1 で対応させる resultMap がありますが、resultMap を削除する場合は、 resultType を SQL 内で直接エンティティと等しくすることができます。クエリはエンティティ オブジェクトに正常にマップできますか? 私のデータベースフィールドはアンダースコアで、エンティティプロパティはキャメルケースです

はい、`resultMap` を削除して、SQL のエンティティと等しい `resultType` を直接記述することができますが、これにはいくつかの条件を満たす必要があります。MyBatis では、クエリによって返される列名は、デフォルトで Java エンティティ クラスの属性名と 1 対 1 でマップされます。MyBatis は、アンダースコア命名方法をキャメルケース命名方法に自動的に変換できる自動マッピング機能も提供します。

ただし、MyBatis のハンプ自動マッピング ルールは、次の設定項目に基づいて有効になることに注意してください。

```xml
<!-- キャメルケースの名前変換をオンにする: CamelCaseMapping -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
```

または、MybatisPlus で次のように設定します。

```yml
mybatis-plus:
  設定:
    マップアンダースコアからキャメルケースへ: true
```

この設定を有効にすると、MyBatis はクエリ結果の下線付きフィールド名を Java エンティティ クラスのキャメル ケース プロパティ名に自動的にマップします。したがって、エンティティ クラスの属性名がキャメル ケースであるが、データベース フィールドがアンダースコアである場合、この設定を有効にしている限り、`resultMap` を省略して、マッピングに `resultType` を直接使用できます。

ただし、データベースのフィールド名が Java エンティティ クラスの属性名と 1 対 1 に対応していない場合、または特別なマッピング関係がある場合は、引き続き `resultMap` を使用してマッピング関係を定義する必要があります。

おすすめ

転載: blog.csdn.net/weixin_42759398/article/details/131618546