Hoy hice algo que me engañó y perdió mucho tiempo. . .
En la configuración de MyBatis, vi una línea de configuraciones como esta. Por la curiosidad del programador, busqué y encontré lo que hace esta configuración.
<setting name = "CallSetterSonnulls" Value = "True"/>
Después de las respuestas de muchos grandes maestros en Internet, finalmente tuve una muy poca comprensión.
En consultas generales, si usa MAP para aceptar el resultado de la consulta, los campos con el resultado de la consulta se ignorarán automáticamente, lo que hará que la excepción del puntero nulo se informe al tomar el parámetro.
Si esta propiedad está establecida, MyBatis no ignorará estos campos. Todavía puede obtener estas claves, pero el valor es nulo, lo cual también es conveniente.
Así que aquí viene la trampa. En este entorno, habrá dos situaciones más especiales.
1. Si todos los campos en toda la consulta no tienen valor, es decir, cuando se encuentran 0 registros, ¿cuál es el resultado del mapa aceptado?
La respuesta es que recibiremos un mapa con todos los valores clave nulos en lugar de un mapa con NULL.
2. Si solo consulta un campo y lo recibe con el mapa, ¿cuál es el resultado de NULL en este momento?
La respuesta es que recibiremos un mapa con NULL, que es exactamente lo opuesto a lo anterior.
Resumir
Lo anterior es el análisis de configuración de MyBatis Callsettersonnulls introducido a usted. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje. ¡El editor le responderá a tiempo!