Skip to content
广告❤️成为赞助商

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
}