自动填充功能
可以将一些公共字段设置自动填充,如createTime,creatorId等等
com.anwen.mongo.handlers.MetaObjectHandler
实现元对象处理器接口:com.anwen.mongo.handlers.MetaObjectHandler
注解填充字段
@CollectionField(.. fill = FieldFill.INSERT)
java
public class User {
// 注意!这里需要标记为填充字段
@CollectionField(.. fill = FieldFill.INSERT)
private String fillField;
....
}
- 自定义实现类 MyMetaObjectHandler,并注册为Bean
java
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(AutoFillMetaObject insertAutoFillMetaObject) {
insertAutoFillMetaObject.fillValue(User::getCreateTime, LocalDateTime.now());
}
@Override
public void updateFill(AutoFillMetaObject updateAutoFillMetaObject) {
updateAutoFillMetaObject.fillValue(User::getCreateTime, LocalDateTime.now());
}
}
注意事项:
- 自动填充实现类,在Bean中,应该只存在一个
java
public enum FieldFill {
/**
* 默认不处理
*/
DEFAULT,
/**
* 插入填充字段
*/
INSERT,
/**
* 更新填充字段
*/
UPDATE,
/**
* 插入和更新时都进行填充字段
*/
INSERT_UPDATE
}