java - jparepository - ¿Qué es esta propiedad spring.jpa.open-in-view=true en Spring Boot?
spring jpa hibernate (2)
Desafortunadamente, OSIV (Open Session in View) está habilitado de forma predeterminada en Spring Boot , y OSIV es realmente una mala idea desde una perspectiva de rendimiento y escalabilidad .
Por lo tanto, asegúrese de que en el archivo de configuración
application.properties
, tenga la siguiente entrada:
spring.jpa.open-in-view=false
Esto deshabilitará OSIV para que pueda
manejar
LazyInitializationException
la manera correcta
.
A partir de la versión 2.0, Spring Boot emite una advertencia cuando OSIV está habilitado de forma predeterminada, por lo que puede descubrir este problema mucho antes de que afecte a un sistema de producción.
Vi en la documentación de Spring Boot esta propiedad para la configuración de JPA
spring.jpa.open-in-view=true
.
Por cierto, se estableció como verdadero, entonces, ¿es el valor predeterminado?
que significa realmente? No encontré ninguna explicación para este comportamiento.
¿Debería ser usar Hibernate
SessionFactory
lugar de
EntityManagerFactory
?
En caso afirmativo, ¿cómo puedo configurar
EntityManagerFactory
?
Agradezco cualquier ayuda.
¡Gracias!
Esta propiedad registrará un
OpenEntityManagerInViewInterceptor
, que registra un
EntityManager
en el subproceso actual, por lo que tendrá el mismo
EntityManager
hasta que
EntityManager
la solicitud web.
No tiene nada que ver con una Hibernate
SessionFactory
etc.