mkyong jparepository example data java spring jpa spring-boot spring-data

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.