2012-03-13 15 views
6

dado cuenta de que si quiero leer algunos datos y si no tengo un contexto de transacción no voy a ser capaz de hacerlo porqueInformación de sólo lectura a través de la primavera + Hibernate

org.hibernate.HibernateException: No Sesión encontrada para el hilo actual

Para leer los datos, no se requiere una transacción normalmente.

Así que para que la primavera para gestionar la sesión tiene que tener una transacción incluso para leer sólo como operaciones selecciona ...?

¿No es esa una sobrecarga?

PS.I no quieren abrir y cerrar la sesión manualmente ...

muchas gracias.

Respuesta

4

@Transactional dice resorte para abrir y cerrar una sesión, además de instruir a iniciar y confirmar una transacción. Esto no es muy sencillo, pero así es como funciona. Entonces, si no tiene @Transactional, no se abre ninguna sesión. Aquí están sus opciones:

  • uso @Transactional(readOnly=true) - el propósito es tener una transacción de solo lectura. Recomiendo que uno
  • usar JPA EntityManager inyectado con @PersistenceContext. Abrirá una nueva sesión subyacente para cada invocación. No es una buena opción. Sin embargo, usted debe considerar el uso de EntityManager con un readOnly = true transacción
  • Usar un aspecto/interceptor/filtro adicional para abrir y cerrar sesión. Eso sería difícil, y puede terminar confundido por la implementación de primavera del concepto de sesión actual de hibernate.
+0

Uso Spring + Hibernate (sin JPA) .Actualmente para leer algunos datos y para que Spring administre la sesión, necesito usar @@ Transactional. Tengo la opción de abrir y cerrar la sesión manualmente. , pero creo que no es elegante?! Pero tengo esto en mente que usign @@ Transactional incluso con solo lectura .Es lo mismo que no usar solo lectura y hay una posible sobrecarga .. – Cris

+0

Readonly es efectivo solo cuando desea evitar la escritura de datos en lo que know..http: //www.ibm.com/developerworks/java/library/j-ts1/index.html – Cris

+1

no se preocupe por la sobrecarga, incluso si hay alguna. – Bozho

Cuestiones relacionadas