Descrição do Problema:
Ao chamar update(Wrapper updateWrapper) na interface IService do mybatisplus, update_time não é preenchido automaticamente.
spuService.update(updateWrapper);
solução:
Em vez de usar o método update(wrapper xxx), use os seguintes métodos:
1.boolean saveOrUpdate(Tentity)
2.boolean saveOrUpdate(Tentity, Wrapper updateWrapper)
3.update(Tentity, Wrapper updateWrapper)
Se você usar o método terceiro método, não use update(null, Wrapper updateWrapper) assim
Análise de causa:
Ao implementar o preenchimento automático na camada inferior, você precisa obter as informações da estrutura da tabela correspondentes ao objeto da instância. Ao usar o método update(wrapper xxx), as informações da estrutura da tabela estão vazias, portanto a lógica de preenchimento é ignorada diretamente.
Então, por que saveOrUpdate(Tentity) funciona?
Se você gosta de usar o Wrapper para atualizar, pode usar diretamente um novo objeto como parâmetro de entrada ao chamar, e o wrapper passa os resultados e condições específicos da atualização.
por exemplo: update(new Spu(), updateWrapper)
Pré-condições de preenchimento automático
1. Definição de campo mais anotação de preenchimento automático
/**
* 添加时间
*/
@TableField(value = "create_time", fill = FieldFill.INSERT)
private Date createTime;
/**
* 修改时间
*/
@TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
- Implemente a interface MetaObjectHandler do mybatis e injete-a no contêiner Spring.