Hibernate speichert Daten nur während Session in HSQL-DB

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ich setze mich gerade mit Hibernate auseinander und hab das Problem, dass der Eintrag von Daten in meine HSQL-DB zwar funktioniert, aber die Daten dort nicht dauerhaft gespeichert werden. Ich verwende HSQL im Standalone Modus (die Daten werden also in Files abgelgt).

Ich denke, dass es an einer simplen Konfigurationssache liegt. Weiß jemand warum die Daten nur solange gespeichert werden, wie die Session aktiv ist?

Danke für die Hilfe.
 

norman

Top Contributor
in der hibernate.cfg.xml sollte stehen:
Code:
<property name="current_session_context_class">thread</property>

und du solltest schauen, dass du nur eine org.hibernate.classic.Session benutzt.
 
G

Guest

Gast
norman hat gesagt.:
in der hibernate.cfg.xml sollte stehen:
Code:
<property name="current_session_context_class">thread</property>
War vorher schon drin.

norman hat gesagt.:
und du solltest schauen, dass du nur eine org.hibernate.classic.Session benutzt.
Hab ich geändert. (Was ist der Unterschied zwischen alter und neuer Session?)

Trotzdem hat sich nichts geändert.
Wenn ich das Programm zum ersten Mal starte mache ich einen Insert und lese die Daten sofort wieder aus, um zu checken, ob er sie eingetragen hat. => Die Daten wurden eingetragen und werden wieder korrekt aus der DB abgefragt.

Beim zweiten Programmstart lese ich nur noch aus der DB und zwar wieder genau die Daten die ich beim ersten Mal eingetragen habe - allerdings findet er jetzt keine Datensätze mehr.

Diese Konfirugationseinstellung hat nichts damit zu tun, oder?
Code:
<property name="hbm2ddl.auto">update</property>
 

norman

Top Contributor
Anonymous hat gesagt.:
Diese Konfirugationseinstellung hat nichts damit zu tun, oder?
Code:
<property name="hbm2ddl.auto">update</property>
doch. bei mir ist diese zeile auskommentiert. ist update denn ein gültiger wert? weiß jetzt nur, dass 'create' bei jedem start die DB löscht+neu erstellt.
 

AlArenal

Top Contributor
@gast:

Ist vermutlich ne ganz banale Sache: Auto-Commit ist standardmäßig aus und du startest zwar eine neue Session, aber machst am Ende kein Commit. Dadurch erfolgt nach Programmende automatisch ein Rollback und die Daten sind auf wundersame Weise verschwunden.

Diese Kleinigkeit hat mich auch mal einiges an Zeit und Nerven gekostet...
 
G

Guest

Gast
Einen Commit mache ich schon. Ich poste hier mal meinen Code in gekürzter Fassung:
Code:
public class Test {

	public static void main(String[] args) {
		Session session = null;
		SessionFactory sessionFactory = null;
		sessionFactory = new Configuration().configure().buildSessionFactory();
		boolean write = true; //beim Ersten durchlauf true, beim zweiten dann false
		boolean read = true; //immer True

		if (write) {
			try {
			session = sessionFactory.openSession();
			session.beginTransaction();

                                                //neues Kunden objekt erstellen
			Kunden kunde = new Kunden();
			kunde.setVorname("Max");
			kunde.setName("Mustermann");
			kunde.setEmail("max@mustermann.com");
			session.save(kunde);
			session.getTransaction().commit();
			} catch (Exception e) {
				System.out.println("FEHLER " + e.getMessage());
    			} finally {
                			session.flush();
	                		session.close();

			}
		}

		if (read) {
			try {
			session = sessionFactory.openSession();
			List result = session.createQuery("from Kunden").list();
			if (result.size() == 0) {
				System.out.println("Keine Kunden-Datensätze in der Datenbank!");
			} else {
    			                for (int i = 0; i < result.size(); i++) {
				Kunden kunde = (Kunden) result.get(i);
				System.out.println(kunde.getId() + ": " + kunde.getName());
				}
			}

			} catch (Exception e) {
				System.out.println("FEHLER " + e.getMessage());
			} finally {
                			session.flush();
	                		session.close();

			}

		}
	}
}
 

Natorion

Bekanntes Mitglied
simple frage: hast du den table mit "CREATE CACHED TABLE ..." gemacht? bin mir aber nit sicher ob ich die frage verstanden habe.
 

Dit

Bekanntes Mitglied
Also ich habe nicht gerade viel Ahnung von Hibernate aber wir (firma) haben immer noch nen

"setPersitent" (in unseren DAO´s)

oder habe ich das übersehen? :roll:
 

Dit

Bekanntes Mitglied
ok ich sehe gerade das müsste das sein: :toll:

session.save(kunde);

mm dann weiß ich auch nicht... :oops:
klammern alle richtig (is mir auch schon mal passiert) :lol:
joa..sonst weiß ich auch nicht :roll:
 
G

Gast

Gast
Tja - ich weiß es immer noch nicht - wenn man das Programm öfter startet (und jedes Mal mit insert) dann speichert er irgendwann die Daten auch persistent. Jetzt habe ich nochmal die DB gelöscht und neu erzeugen lassen (leer) aber er speichert die Daten immer noch nicht von Anfang an - ich kapiers einfach nicht.
 
G

Gast

Gast
Juhu! Ich habs rausgefunden - nach endlosem Stöbern im Hibernate-Forum: Seit der HSQL Version 1.8 muss man zum Schluss immer den Shutdown fahren - sonst speichert er die Daten nicht. Dies kann man erreichen, indem man in die Hibernate.cfg.xml folgendes Statement miteinfügt:

Code:
<property name="hibernate.connection.shutdown">true</property>

Oder man gibt das Statement direkt aus dem Programm heraus:

Code:
session.connection().createStatement().execute("SHUTDOWN");
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Hibernate Envers - Aufruf der Methode zum Speichern selbst ausführen oder managen? Allgemeine Java-Themen 0
S org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: right near Allgemeine Java-Themen 6
P Hibernate Proxy Allgemeine Java-Themen 1
C Hibernate EJB JTA Allgemeine Java-Themen 4
M JAXB Reimport zu Hibernate DB -> Exception Allgemeine Java-Themen 3
Shoox Hibernate / JAXB für Schnittstellen Allgemeine Java-Themen 4
Jay_030 Guice + Hibernate = Probleme? Allgemeine Java-Themen 2
G Hibernate search (Lucene) - Index wird nicht rechtzeitig erzeugt? Allgemeine Java-Themen 2
H Hibernate: @OneToOne Beziehung Allgemeine Java-Themen 4
N Hibernate und Fehlermeldung Allgemeine Java-Themen 18
neurox Tutorial: Hibernate mit MySQL (erste Schritte) Allgemeine Java-Themen 34
P Hibernate oder Java Persistence API? Allgemeine Java-Themen 3
A Spring und Hibernate Allgemeine Java-Themen 2
MQue log4j mit hibernate Allgemeine Java-Themen 3
F Hibernate speichern - Null Allgemeine Java-Themen 5
T Wie Hibernate im Tomcat installieren? Allgemeine Java-Themen 2
M Hibernate frage zur Verbindung Allgemeine Java-Themen 3
G Hibernate, JTable und Performance Allgemeine Java-Themen 17
G Obfuscator und Hibernate! Allgemeine Java-Themen 5
W JBoss,Axis2,Hibernate/JPA,Oracle - EntityManager Problem Allgemeine Java-Themen 4
T Hibernate Criteria Queries - Abfragen von Collection-Members Allgemeine Java-Themen 2
J Hibernate & Java Allgemeine Java-Themen 4
A Hibernate und Swing Allgemeine Java-Themen 2
D .app speichert nicht! Allgemeine Java-Themen 11
G Methoden HashMap speichert unter falschen Schlüsseln Allgemeine Java-Themen 6
Madlip Erste Schritte Java speichert Daten im Programm?!? Allgemeine Java-Themen 9
A Womit speichert ihr Texte? Allgemeine Java-Themen 7
Q || Wie speichert man Dateien wo der Pfad als Link(UNIX)... Allgemeine Java-Themen 11
T wie speichert man Daten/Informationen? Allgemeine Java-Themen 8
I Mehrere Klassen mit den selben Daten Allgemeine Java-Themen 5
padde479 Collections Daten in Dreiecksform Allgemeine Java-Themen 13
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
torresbig Url nach Webseiten-Login auslesen & Daten an Webseite senden Allgemeine Java-Themen 9
A Hartgecodete Daten auslagern Allgemeine Java-Themen 4
F Laden von bestimmten Daten aus TAR Archiv Allgemeine Java-Themen 23
S Webservices für binäre Daten? Allgemeine Java-Themen 5
OnDemand Daten in RAM zwischenspeichern oder lieber aus DB holen? Allgemeine Java-Themen 24
J Daten über serielle Schnittstelle empfangen Allgemeine Java-Themen 4
J JSON Daten von einer Webseite erhalten Allgemeine Java-Themen 2
S Entities aus XML - Daten. Allgemeine Java-Themen 1
M Schnelleres Speichern von XML-Daten über URLConnection Allgemeine Java-Themen 4
kodela Klasse mit "gezipten" Daten Allgemeine Java-Themen 6
M Daten aus MatLab Datei lesen Allgemeine Java-Themen 8
N Daten einer JCoTable in JTextArea anzeigen Allgemeine Java-Themen 7
kodela Klassen Klasse "vergisst" ihre Daten Allgemeine Java-Themen 2
C Daten für Klassifikationsverfahren gewinnen Allgemeine Java-Themen 6
J Daten von Quelltext Allgemeine Java-Themen 5
K OOP Daten addieren sich bei GUI-Eingabe Allgemeine Java-Themen 10
J Jasper Reports - Daten vom Hoster Allgemeine Java-Themen 2
kodela Daten während Laufzeit zugriffsbereit Allgemeine Java-Themen 15
J Millisekunde zwischen 2 Daten Allgemeine Java-Themen 6
Q Selbständig ActionEvent auslösen zum Daten senden über serielle Schnittstelle Allgemeine Java-Themen 7
J Daten aus Website-Quelltext auslesen Allgemeine Java-Themen 62
R Android Daten online senden Allgemeine Java-Themen 0
P Datenbank-MiniGUI fügt keine Daten ein Allgemeine Java-Themen 4
K Gespeicherte Daten von einer LinkedList auf vier LinkedList verteilen Allgemeine Java-Themen 6
Q-bert Daten von Java Programm speichern Allgemeine Java-Themen 4
K Datei (CSV-ähnlich) in Java einlesen & mit teil der Daten Graphen erstellen Allgemeine Java-Themen 9
A Erste Schritte Daten aus einer Website auslesen Allgemeine Java-Themen 7
OnDemand Desktop-Applikation schreiben, wie daten persistent? Allgemeine Java-Themen 9
S Erste Schritte Fehlender Gedanken-Ansatz bei Interpretation von Daten Allgemeine Java-Themen 1
J Auslesen Daten Java/HTML Allgemeine Java-Themen 15
K Große Mengen an Daten speichern Allgemeine Java-Themen 9
D Daten in MySQL-Datenbank schreiben Allgemeine Java-Themen 13
A Swing FileWriter schreibt keine Daten in Datei Allgemeine Java-Themen 13
M Daten aus anderen Programmen auslesen Allgemeine Java-Themen 2
D Best Practice Login-Daten: Wie am besten abrufen? Allgemeine Java-Themen 6
L Best Practice Log Dateien analysieren und eventuell passende Daten am Chart darstellen Allgemeine Java-Themen 1
J Serial Port Daten empfangen Allgemeine Java-Themen 5
H Daten via COM Schnittstelle erhalten Allgemeine Java-Themen 2
J Daten persistent speichern Allgemeine Java-Themen 14
S Allgemeine parallelisierte Loesung um Daten im Hintergrund zu laden..? Allgemeine Java-Themen 6
L Daten ohne Datenbank richtig abspeichern Allgemeine Java-Themen 5
G Daten aus Website auslesen Allgemeine Java-Themen 7
J Daten aus GUI auslesen und in Objekte umwandeln Allgemeine Java-Themen 6
O Serial Port Daten als Tastaturanschlag senden Allgemeine Java-Themen 0
N Zeitabstand zwischen 2 Daten(Mehrzahl von Datum) Allgemeine Java-Themen 3
T Input/Output Daten in eine Datei schreiben Allgemeine Java-Themen 4
Z daten bindung Allgemeine Java-Themen 1
A Datentypen Gregorian Calendar - 2 Daten sind gleich?? Allgemeine Java-Themen 3
L Vergleich-Xml-Daten Allgemeine Java-Themen 3
vandread Daten verschlüsseln mit Java oder Datenbank Allgemeine Java-Themen 15
A Daten in Formularen/Vorlagen erstellen und ausdrucken Allgemeine Java-Themen 3
C HtmlUnit Daten einer Tabelle bekommen ohne, dass diese eine ID aufweist Allgemeine Java-Themen 1
T Daten über port abfangen mit proxy server Allgemeine Java-Themen 12
Todesbote Excel Blattschutz aufheben und Daten einfügen Allgemeine Java-Themen 3
T Mit Apache Poi Daten aus einer Excel Tabelle kopieren und in Word einfügen Allgemeine Java-Themen 1
OnDemand PC identifizieren / Daten auslesen Allgemeine Java-Themen 15
G Combobox füllen mit daten aus einer Tabelle Allgemeine Java-Themen 4
J Maven .war enthält veraltete Daten Allgemeine Java-Themen 3
N Daten aus Jar laden Allgemeine Java-Themen 10
P Datentypen String-Daten zu Byte-Zahlen konvertieren - Komme nicht weiter nach vielem versuchen :-/ Allgemeine Java-Themen 7
K Input/Output Daten speichern / laden Allgemeine Java-Themen 2
M Best Practice: Daten aufnehmen-speichern-bereitstellen Allgemeine Java-Themen 8
T Daten effizient verwalten Allgemeine Java-Themen 4
B JTable eigene Daten Add Methode Allgemeine Java-Themen 2
S OOP Apache Commons Math - Verwendung von Genetics - Wie werden Daten in Chromosomen gespeichert? Allgemeine Java-Themen 4
C Daten über URL an PHP verschicken Allgemeine Java-Themen 4
R Daten aus DB auslesen in ein formular (JSP) Allgemeine Java-Themen 13
S Library fuer Internet-Text-Daten-Quellen..? Allgemeine Java-Themen 8

Ähnliche Java Themen


Oben