mybatis-plus fieldfill
时间: 2023-07-03 13:31:20 浏览: 88
Mybatis-plus是基于Mybatis的增强工具,在实现Mybatis的基础功能的同时,提供了更加便捷和高效的开发方式。其中,FieldFill是Mybatis-plus提供的一个注解,用于自动填充实体类中的字段值。
FieldFill注解有四个属性:
- value:填充策略,可选值为Insert、Update、Insert_Update,分别表示插入时填充、更新时填充和插入和更新时都填充。
- fillMethod:填充方法,通过该属性指定具体的填充逻辑。
- condition:填充条件,通过该属性指定在什么条件下进行填充。
- insert:是否在插入时进行填充,默认为true。
- update:是否在更新时进行填充,默认为true。
使用FieldFill注解时,需要在实体类的相应字段上添加注解,并在Mybatis的配置文件中配置相关参数。
例如,在实体类中定义了一个createTime字段,需要在插入时自动填充当前时间,可以按照以下方式使用FieldFill注解:
```java
public class User {
private Long id;
private String name;
@TableField(fill = FieldFill.INSERT, fillStrategy = FieldStrategy.NOT_NULL)
private Date createTime;
// getter/setter...
}
```
在Mybatis的配置文件中,需要添加自动填充插件的配置:
```xml
<plugins>
<plugin interceptor="com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptorHolder">
<property name="interceptors">
<array>
<bean class="com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor">
<property name="overflow" value="false" />
</bean>
<bean class="com.baomidou.mybatisplus.extension.plugins.inner.TenantLineInnerInterceptor">
<property name="tenantLineHandler">
<bean class="com.baomidou.mybatisplus.extension.plugins.tenant.TenantLineHandler">
<property name="tenantIdColumn" value="tenant_id" />
<property name="tenantIdType" value="java.lang.Long" />
<property name="ignoreTablePrefix" value="true" />
<property name="mapperMethodRegex" value=".*" />
</bean>
</property>
</bean>
<bean class="com.baomidou.mybatisplus.extension.plugins.inner.FieldFillInnerInterceptor" />
</array>
</property>
</plugin>
</plugins>
```
这样,在插入数据时,createTime字段的值就会自动填充为当前时间。
阅读全文