Foros del Web » Programación para mayores de 30 ;) » Java »

Antipatrón sesión-por-operación

Estas en el tema de Antipatrón sesión-por-operación en el foro de Java en Foros del Web. Hola a todos! Estoy comenzando con Hibernate que lo voy a utilizar como capa de persistencia en una aplicación de escritorio con swing. Leyendo de ...
  #1 (permalink)  
Antiguo 26/09/2012, 15:31
 
Fecha de Ingreso: enero-2009
Mensajes: 19
Antigüedad: 15 años, 3 meses
Puntos: 1
Pregunta Antipatrón sesión-por-operación

Hola a todos!

Estoy comenzando con Hibernate que lo voy a utilizar como capa de persistencia en una aplicación de escritorio con swing.

Leyendo de la página web de Hibernate me he encontrado esto:

private void createAndStoreEvent(String title, Date theDate) {
Session session = HibernateUtil.getSessionFactory().getCurrentSessio n();
session.beginTransaction();

Event theEvent = new Event();
theEvent.setTitle(title);
theEvent.setDate(theDate);
session.save(theEvent);

session.getTransaction().commit();
}


Hablando del alcance de la unidad de trabajo, ¿deberia org.hibernate.Session usarse para ejecutar una o varias operaciones de base de datos? El ejemplo anterior usa un objeto org.hibernate.Session para una unica operacion. Sin embargo, esto es pura coincidencia; el ejemplo no es lo suficientemente complejo para mostrar otra opcion. El alcance de org.hibernate.Session puede es flexible, pero nunca debes diseñar tu aplicacion para usar un nuevo objeto org.hibernate.Session por cada operacion de base de datos. Aunque esto es lo que ocurre en los siguientes ejemplos, considera que sesion-por-operación es un anti-pattern (un diseño contrario a las buenas practicas de programación).

No entiendo muy bien porque esto es una mala práctica. Si yo quiero en mi aplicación ,por ejemplo, dar de alta un cliente. ¿Por qué no debo realizar lo anterior? Entonces ¿Cómo debería hacerlo para que fuera con buenas prácticas?

Un saludo y muchas gracias por vuestro tiempo

Etiquetas: programa, aplicaciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:22.