sessionfactory

___ qstnhdr ___ Spring-Hibernate: Unzulässiger Versuch, eine Sammlung mit zwei offenen Sitzungen zu verknüpfen ___ answer33408268 ___

Hibernate Handbuch sagt :

  

Verwenden Sie update (), wenn Sie sicher sind, dass die Sitzung keine enthält   Bereits persistente Instanz mit demselben Bezeichner. Verwenden Sie merge () wenn   Sie möchten Ihre Änderungen jederzeit ohne Gegenleistung zusammenführen   des Zustandes der Sitzung. Mit anderen Worten, update () ist normalerweise der   erste Methode, die Sie in einer neuen Sitzung aufrufen würden, um sicherzustellen, dass die   Das erneute Anhängen Ihrer getrennten Instanzen ist die erste Operation   ausgeführt.

Es hat mir geholfen. DAO:

%Vor%

POJO-Anzeigen (Ein Nutzer hat viele Anzeigen):

%Vor%     
___ answer23108258 ___

Verwenden Sie das integrierte Sitzungstool:

%Vor%

Öffnen und schließen Sie sie nicht manuell.

Die Sammlung versucht, zwei Sitzungen zugeordnet zu sein. Auch %code% ist, obwohl absolut gültig, nicht Teil von JPA. JPA basiert auf %code% .

Ihre Methoden, da Sie die Klasse als transaktional definieren, erfordern nicht, dass manuell eine Transaktion startet. Entfernen Sie diese (und alle Verweise auf Transaktionen) aus %code% .

%Vor%

Transaktionen gehen üblicherweise auf die Service-Ebene, nicht auf die Repositories. Sie können also mehrere Repository- / DAO-Aufrufe in eine Service-Layer-Methode einfügen, die transaktional ist.

    
___ qstntxt ___

Ich versuche, Datensatz in MySql Db zu aktualisieren. Während der Aktualisierung wurde folgende Ausnahme ausgelöst:

%Vor%

Ich überprüfe die Sitzung. Es schließt sich im Finally-Block jeder Methode. Nicht in der Lage herauszufinden, was falsch ist. Ich bin in der Lage, Operation ohne andere Probleme mit anderen Methoden einzufügen, aber nur die saveUpdateUserBean-Methode wirft Ausnahme

BenutzerDAOImpl:

%Vor%

ServiceImpl:

%Vor%

applicationContext.xml:

%Vor%

Ich bin in der Lage, alle Datenbankoperationen mit derselben Konfiguration durchzuführen, aber wenn ich die blockuser () -Methode von serviceImpl aufruft, rufen ihre aufrufenden DAO-Methoden und die saveupdateUserBean über die Ausnahme hinaus? m ich vermisse etwas?

    
___ answer27565755 ___

Das Problem war auf einen Missbrauch der Kaskadenaktualisierung in einer der Zuordnungen zurückzuführen. Hier ist eine Beispielfeldzuordnung:

%Vor%

Durch das Entfernen der cascade = CascadeType.ALL wurde das Problem behoben. Fazit: Verwenden Sie Kaskaden-Updates sorgfältig, da Sie dadurch in Schwierigkeiten geraten können. Verwenden Sie es, wenn die Geschäftslogik dies erfordert. In dem Beispiel unten gab es keinen Grund dafür, also war das Entfernen sowohl geschäftlich als auch programmatisch eine gute Entscheidung.

Quelle: Ссылка

    
___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ tag123hibernate ___ Hibernate ist eine ORM-Bibliothek (Object-Relational Mapping) für die Sprache Java, die es Entwicklern ermöglicht, POJO-artige Domänenmodelle in ihren Anwendungen zu verwenden, die weit über das Object / Relational Mapping hinausgehen. ___ answer45225450 ___

Ich hatte ein ähnliches Problem wie Sie und ich fanden keine Lösung für mein spezifisches Problem. Ich musste die Sitzung für die Sammlung manuell schließen mit:

%Vor%

Ich denke, es ist nicht gut, um das Problem so zu lösen, aber für mich war es der einzige Weg.

EDIT: Das funktioniert natürlich nur bei einem Set, nicht wenn die Collection eine Liste oder etw. ist. sonst ...

    
___ answer23109834 ___

Problem könnte, wenn Sie unter Code

verwenden

anstelle von %code% , wenn Sie '

verwenden

%code% , bewirkt, dass zwei Sitzungen gleichzeitig geöffnet werden.

    
___ tag123annotations ___ Bei der Programmierung werden Annotationen verwendet, um einem Codeelement Informationen hinzuzufügen, die nicht vom Typsystem ausgedrückt werden können. ___ tag123springmvc ___ Ein Framework zum Erstellen von Java-Webanwendungen basierend auf dem Model-View-Controller (MVC) -Muster. Es fördert flexiblen und entkoppelten Code von den zugrunde liegenden Ansichtstechnologien. ___ tag123essessionfactory ___ Eine Hauptschnittstelle, die von der Anwendung zum Abrufen einer Hibernate-Sitzung verwendet wird. ___
3
Antworten

In Grails kann ich auf die Hibernate-Sitzung innerhalb einer statischen Domänenklassenmethode zugreifen.

Ich habe verschiedene Artikel im Internet gelesen, aber sie scheinen in diesem Punkt ziemlich verstreut zu sein. Genau was muss ich in meiner Konfiguration und in meiner Methode tun, um die Hibernate-Sitzung zu bekommen. Ich versuche, einige dir...
14.12.2009, 02:49
3
Antworten

Wählen Sie ein einzelnes Element aus der Datenbank mit Spring Hibernate Sessionfactory

Dies ist in meinem DAO: %Vor% Dies ruft alle Elemente aus der Tabelle Wetter ab. Aber sagen wir, ich möchte so etwas machen (ich möchte nur ein Element aus der Tabelle Wetter): %Vor% Ich weiß, dass es am Ende nicht list() geben sol...
16.09.2011, 15:07
3
Antworten

Spring + Hibernate mit Anmerkungen: Keine an den Thread gebundene Hibernate-Sitzung

Ich bin neu bei Spring und habe versucht, eine Webanwendung mit folgendem Stack zu erstellen: Apache Tomcat 7, MySQL, Spring MVC, Hibernate 3 mit JPA-Anmerkungen. Ich versuche zu lernen, indem ich dem Buch "Spring in Action, Third Edition" vo...
25.02.2011, 19:40
5
Antworten

Mehrere Sitzungsfactories unter Spring / Hibernate

Ich habe eine Anforderung erhalten, dass ich mehrere Datenbanken in derselben Instanz unterstützen muss, um die Mandantenfähigkeit zu unterstützen. Jeder DB hat ein identisches Schema. Der Benutzer meldet sich bei einer bestimmten Datenbank an,...
23.09.2008, 09:15
2
Antworten

Hibernate 4 sessionfactory packagesstoscan Eigenschaftenverwendung

Wir haben eine Web-Anwendung basierend auf Spring 3.2.4 und Hibernate 4.2.3. Es wurde mit dem Appfuse 2.2.1 Archetype generiert. Gemäß der verfügbaren Dokumentation können wir die Eigenschaft packagesToScan der SessionFactory verwenden, um Entit...
18.12.2013, 05:44
5
Antworten

Spring-Hibernate: Unzulässiger Versuch, eine Sammlung mit zwei offenen Sitzungen zu verknüpfen

Ich versuche, Datensatz in MySql Db zu aktualisieren. Während der Aktualisierung wurde folgende Ausnahme ausgelöst: %Vor% Ich überprüfe die Sitzung. Es schließt sich im Finally-Block jeder Methode. Nicht in der Lage herauszufinden, was falsc...
16.04.2014, 11:20