El patrón **Identity Map** asegura que cada objeto de negocio se cargue solo una vez desde la base de datos en una única sesión.
Funciona como una caché interna de la sesión: cuando pides un objeto por su ID, el Identity Map primero revisa si ya lo tiene en memoria. Si es así, te devuelve la instancia existente en lugar de consultar la base de datos de nuevo.
# Beneficios Clave
-
check_circle
Consistencia de Identidad
Evita tener dos objetos diferentes en memoria que representen la misma fila de la base de datos.
-
check_circle
Rendimiento
Reduce drásticamente las consultas repetitivas a la base de datos.
# Ejemplo Práctico
if (map.containsKey(id)) {
return map.get(id); // Devuelve objeto ya cargado
} else {
Person p = db.loadPerson(id);
map.put(id, p); // Lo guarda para la próxima
return p;
}