Auto Fill Feature
Common fields such as
createTime
,creatorId
, etc., can be automatically filled.
com.mongoplus.handlers.MetaObjectHandler
- Implements the Meta Object Handler interface:
com.mongoplus.handlers.MetaObjectHandler
- Annotate fields to be auto-filled using
@CollectionField(.. fill = FieldFill.INSERT)
java
public class User {
// Note! This field must be marked for auto-fill
@CollectionField(.. fill = FieldFill.INSERT)
private String fillField;
....
}
- Implement a custom handler class
MyMetaObjectHandler
and register it as a 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());
}
}
Notes:
- Only one auto-fill handler class should exist in the Bean container.
java
public enum FieldFill {
/**
* Do not handle by default
*/
DEFAULT,
/**
* Fill on insert
*/
INSERT,
/**
* Fill on update
*/
UPDATE,
/**
* Fill on both insert and update
*/
INSERT_UPDATE
}