You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/site/es/xdoc/sqlmap-xml.xml
+84Lines changed: 84 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1310,6 +1310,90 @@ public class User {
1310
1310
<spanclass="label important">NOTA</span> Recuerda que todos estos son ResultMaps, y que si no indicas ningún result en ellos, MyBatis mapeará automáticamente las columnas a las propiedades por ti. Así que en muchos casos estos ejemplos son más verbosos de lo que realmente debieran ser. Dicho esto, la mayoría de las bases de datos son bastante complejas y muchas veces no podemos depender de ello para todos los casos.
1311
1311
</p>
1312
1312
1313
+
</subsection>
1314
+
<subsectionname="Auto-mapeo">
1315
+
1316
+
<p>
1317
+
Como ya has visto en las secciones previas, en los casos simples MyBatis puede auto-mapear los resultados por ti y en el resto de los casos
1318
+
es posible que tengas que crear un result map. Pero, como verás en esta sección también puedes combinar ambas estrategias.
1319
+
Veamos en detalle cómo funciona el auto-mapeo.
1320
+
</p>
1321
+
1322
+
<p>
1323
+
Al auto-mapear resultados MyBatis obtiene el nombre de columna y busca una propiedad con el mismo nombre sin tener en cuenta las mayúsculas.
1324
+
Es decir, si se encuentra una columna <i>ID</i> y una propiedad <i>id</i>, MyBatis informará la propiedad <i>id</i> con el valor de la columna
1325
+
<i>ID</i>.
1326
+
</p>
1327
+
1328
+
<p>
1329
+
Normalmente las columnas de base de datos se nombran usando mayúsculas y separando las palabras con un subrayado, mientras que las propiedades
1330
+
java se nombran habitualmente siguiendo la notación tipo camelcase. Para habilitar el auto-mapeo entre ellas informa el parámetro de configuración
1331
+
<code>mapUnderscoreToCamelCase</code> a true.
1332
+
</p>
1333
+
1334
+
<p>
1335
+
El auto-mapeo funciona incluso cuando hay un result map específico. Cuando esto sucede, para cada result map, todas las columnas que están
1336
+
presentes en el ResultSet y que no tienen un mapeo manual se auto-mapearán. Posteriormente se procesarán los mapeos manuales.
1337
+
En el siguiente ejemplo las columnas <i>id</i> y <i>userName</i> se auto-mapearán y la columna <i>hashed_password</i> se mapeará manualmente.</p>
Con este result map ambos <i>Blog</i> y <i>Author</i> se auto-mapearán. Pero fíjate que <i>Author</i> tiene un <i>id</i> y que hay una
1393
+
columna con nombre <i>id</i> en el ResultSet por lo que el id de Author se rellenará con el id de Blog, y eso no era lo que esperabas.
1394
+
Por tanto usa la opción <code>FULL</code> con cuidado.
1395
+
</p>
1396
+
1313
1397
</subsection>
1314
1398
<subsectionname="cache">
1315
1399
<p>MyBatis incluye una funcionalidad de caché transaccional de segundo nivel muy potente que es ampliamente configurable y personalizable. Se han realizado muchos cambios en la caché de MyBatis 3 para hacer la a la vez más potente y más sencilla de configurar.
0 commit comments