如何利用@TableField注解自定义字段映射规则?
时间: 2024-09-30 20:10:24 浏览: 39
在MyBatis中,`@TableField` 注解是一个非常有用的工具,它允许开发者自定义数据表字段和实体属性之间的映射关系。通过这个注解,你可以控制字段的别名、是否忽略、是否参与结果集查询等。以下是 `@TableField` 的常见使用方式:
1. **字段名称**:
```java
@TableField(name = "custom_column_name") // 将实体中的字段映射到数据库表中的 'custom_column_name'
private String customColumnName;
```
2. **别名**:
```java
@TableField(resultType = String, alias = "display_name") // 查询结果中的字段显示名为 'display_name'
private String originalName;
```
3. **是否包含**:
```java
@TableField(exist = false) // 如果字段存在则忽略该字段
private String ignoredField;
```
4. **动态选择**:
```java
@TableField(select = "CASE WHEN status = 1 THEN 'active' ELSE 'inactive' END") // 根据条件动态生成SQL表达式
private String statusDisplay;
```
5. **SQL表达式**:
```java
@TableField(sqlExpression = "column + '_suffix')" // 使用SQL表达式直接转换数据库字段值
private String formattedColumn;
```
6. **序列化/反序列化处理**:
```java
@TableField(serializable = false) // 对应JSON转换时,忽略这个字段
private transient Object transientField;
```
记得在配置文件中启用`mybatis-plus.mapper.config.enabled = true`,才能让这些注解生效。
阅读全文