使用 autoResultMap 屬性值,自動映射json類型
@TableName(opens new window)
- 描述:表名註解,標識實體類對應的表
- 使用位置:實體類
@TableName("sys_user")
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
2
3
4
5
6
7
屬性 | 類型 | 必須指定 | 默認值 | 描述 |
---|---|---|---|---|
value | String | 否 | "" | 表名 |
schema | String | 否 | "" | schema |
keepGlobalPrefix | boolean | 否 | false | 是否保持使用全局的 tablePrefix 的值(當全局 tablePrefix 生效時) |
resultMap | String | 否 | "" | xml 中 resultMap 的 id(用於滿足特定類型的實體類對象綁定) |
autoResultMap | boolean | 否 | false | 是否自動構建 resultMap 並使用(如果設置 resultMap 則不會進行 resultMap 的自動構建與注入) |
excludeProperty | String[] | 否 | {} | 需要排除的屬性名 @since 3.3.1 |
關於 autoResultMap
的說明:
MP 會自動構建一個 resultMap
並注入到 MyBatis 裏(一般用不上),請注意以下內容:
因爲 MP 底層是 MyBatis,所以 MP 只是幫您注入了常用 CRUD 到 MyBatis 裏,注入之前是動態的(根據您的 Entity 字段以及註解變化而變化),但是注入之後是靜態的(等於 XML 配置中的內容)。
而對於 typeHandler
屬性,MyBatis 只支持寫在 2 個地方:
- 定義在 resultMap 裏,作用於查詢結果的封裝
- 定義在
insert
和update
語句的#{property}
中的property
後面(例:#{property,typehandler=xxx.xxx.xxx}
),並且只作用於當前設置值
除了以上兩種直接指定 typeHandler
的形式,MyBatis 有一個全局掃描自定義 typeHandler
包的配置,原理是根據您的 property
類型去找其對應的 typeHandler
並使用