Mybatis plus tempo de atualização, tempo de criação, situação de falha de preenchimento automático e solução

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.
Insira a descrição da imagem aqui
Então, por que saveOrUpdate(Tentity) funciona?
Insira a descrição da imagem aqui
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;
  1. Implemente a interface MetaObjectHandler do mybatis e injete-a no contêiner Spring.
    Insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/mcband/article/details/128893816
Recomendado
Clasificación