Mybatis plus paging plugin and auto-fill
Configuration details
@EnableTransactionManagement
@Configuration
@MapperScan("com.itoyoung.dao")
public class MybatisPlusConfig {
/**
* Page Break Plugin
*/
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
paginationInterceptor.setLimit(-1);
return paginationInterceptor;
}
/**
* Automatic filling function
* @return
*/
@Bean
public GlobalConfig globalConfig() {
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setMetaObjectHandler(new MetaHandler());
return globalConfig;
}
}
@Component
@Slf4j
public class MetaHandler implements MetaObjectHandler {
/**
* New Data Execution
* @param metaObject
*/
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("createTime", new Date(), metaObject);
this.setFieldValByName("updateTime", new Date(), metaObject);
}
/**
* Update data execution
* @param metaObject
*/
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime", new Date(), metaObject);
}
}
application
Add an annotation to the entity class @ tablefield (value = create)_ time", fill = FieldFill.INSERT )
, the time is automatically filled in when inserting or updating
@Data
@Accessors(chain = true)
public class Channel implements Serializable {
@TableId(type = IdType.AUTO)
private Long id;
/**
* Channel Code
*/
@NotEmpty(message = "Channel code cannot be null")
private String channelCode;
/**
* Channel Name
*/
@NotEmpty(message = "Channel name cannot be empty")
private String channelName;
/**
* creat time
*/
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
/**
* update time
*/
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
}
Paging query
@Service(version = "${provider.service.version}")
@Slf4j
@Component
public class ChannelServiceImpl extends ServiceImpl<ChannelMapper, Channel> implements IChannelService {
@Override
public Page<Channel> selectChannelPageByQuery(ChannelListGetQuery query) {
Page<Channel> channelPage = new Page<>();
channelPage.setCurrent(query.getCurrentPage());
channelPage.setSize(query.getPageSize());
QueryWrapper<Channel> queryWrapper = new QueryWrapper<>();
if (StringUtil.isNotBlank(query.getChannelName())) {
queryWrapper.lambda().like(Channel::getChannelName, query.getChannelName());
}
queryWrapper.lambda().orderByDesc(Channel::getId);
IPage<Channel> page = page(channelPage, queryWrapper);
channelPage.setTotal(page.getTotal());
channelPage.setRecords(page.getRecords());
return channelPage;
}
}