Was ist in diesem Frühjahr.jpa.open-in-view=true-Eigenschaft in den Frühling Starten?
Sah ich im Frühjahr Starten Dokumentation, die diese Eigenschaft für die JPA-Konfiguration spring.jpa.open-in-view=true
. Übrigens, es war auf "true" gesetzt, so ist es der default-Wert?
Was bedeutet es wirklich? Ich fand keine Erklärung für dieses Verhalten.
Sollte es sein, zu verwenden, Hibernate SessionFactory
statt EntityManagerFactory
? Wenn ja, wie kann ich einstellen, zu EntityManagerFactory
?
Jede Hilfe dankbar.
Dank!
InformationsquelleAutor Carlos Alberto | 2015-05-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Eigenschaft registrieren Sie einen
OpenEntityManagerInViewInterceptor
, welche Register eineEntityManager
auf den aktuellen thread, so dass Sie den gleichenEntityManager
bis der web-Anfrage ist fertig. Es hat nichts zu tun mit einer Hibernate -SessionFactory
etc.Der Flieger funktioniert nur, wenn Sie das DispatcherServlet im Frühjahr (weil der interceptor ist ein Feder-Mechanismus). Der filter zugeordnet werden können, werden alle konfigurierten servlets (wir verwenden es für das FacesServlet in einer unserer Anwendungen). Also, wenn Sie verwenden Sie nur das DispatcherServlet, können Sie die Eigenschaft hinzufügen und den filter zu entfernen, da sonst der filter benutzt werden.
InformationsquelleAutor
Leider OSIV (Open Session in View") aktiviert ist standardmäßig in den Frühling Starten, und OSIV ist wirklich eine schlechte Idee von einer performance und Skalierbarkeit Perspektive.
Also, stellen Sie sicher, dass in der
application.properties
Konfigurations Datei, müssen Sie den folgenden Eintrag:Deaktiviert das OSIV, so dass Sie behandeln Sie die
LazyInitializationException
- der richtige Weg.Ab version 2.0, Spring Boot Probleme eine Warnung, wenn OSIV ist standardmäßig aktiviert, so können Sie entdecken das problem, lange bevor es Auswirkungen auf ein Produktionssystem.
Es ist, weil meine Antwort kam ein Jahr später und die OP könnte schon lange bewegt Sie sich auf verschiedene Dinge
Duh, diese Sache machte mich wütend, ich konnte nicht verstehen, warum der @Transactional annotation nicht Sinn und verbindungen(sessions) nicht öffnen/schließen als erwartet. Ich wünschte wirklich, Frühling docs hat JEDER seine versteckte Funktion Beschreibung geschrieben in H1 FETT in seiner Dokumentation Seiten. Dank
Es ist eine WARNUNG protokolliert wird heutzutage.
eine WARNUNG protokolliert wird heutzutage." - Dies ist der Grund, warum ich diesen Beitrag Lesen 😉
InformationsquelleAutor