Hoje fiz algo que me traiu e desperdiçou muito tempo. . .
Nas configurações de Mybatis, vi uma linha de configurações como esta. Fora da curiosidade do programador, pesquisei e encontrei o que essa configuração faz.
<Configuração name = "callSetterSonnulls" value = "true"/>
Após as respostas de muitos grandes mestres na internet, finalmente tive um entendimento muito pouco.
Em consultas gerais, se você usar o mapa para aceitar o resultado da consulta, os campos com o resultado da consulta NULL serão automaticamente ignorados, o que fará com que a exceção do ponteiro nulo seja relatada ao tomar o parâmetro.
Se essa propriedade estiver definida, o Mybatis não ignorará esses campos. Você ainda pode obter essas chaves, mas o valor é nulo, o que também é conveniente.
Então aqui vem a armadilha. Nesse cenário, haverá mais duas situações especiais.
1. Se todos os campos em toda a consulta não tiverem valor, ou seja, quando 0 registros são encontrados, qual é o resultado do mapa aceito?
A resposta é que receberemos um mapa com todos os valores -chave nulos em vez de um mapa com nulo.
2. Se você apenas consultar um campo e o receber com mapa, qual é o resultado de NULL neste momento?
A resposta é que receberemos um mapa com NULL, que é exatamente o oposto do exposto acima.
Resumir
O exposto acima está a análise de configuração do Mybatis callSetterSonnulls apresentado a você. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem. O editor responderá a você a tempo!