Hibernate speichern - Null

Status
Nicht offen für weitere Antworten.

Fokus

Mitglied
Hallo Forum :)

Ich versuche mich derzeit ein bisschen in Hibernate :)

Dabei geht es um eine relativ einfache Anwendung:
Eine Finanzverwaltung hat mehrere Konten auf denen Geld ein und ausgänge gebucht werden können.

Jede Buchung hat natürlich genau ein Konto (also nicht die klassische Buchführung. Ganz einfach gehalten ;) )

Nun gibt es zu den Buchungen und den Konten Pojo's und XML-Dateien.

Buchung.java
Java:
package objects;



import java.math.BigDecimal;

import java.sql.Timestamp;

import java.util.Date;



public class Buchung {



	private	int			id;

	private	Konto		konto;

	private	String		text;

	private	BigDecimal 	betrag;

	private	Timestamp	datum;

	private	boolean 	del;

	private	boolean 	storno;

	private	Date 		regelDatum;



		

	public int 			getId()						{ return id; }

	public Konto 		getKonto()					{ return konto;	}

	public String 		getText() 					{ return text; 	}

	public BigDecimal	getBetrag() 				{ return betrag; }

	public Timestamp	getDatum()					{ return datum; }

	public void 		setDatum(Timestamp datum) 	{ this.datum = datum; }

	public boolean 		isDel() 					{ return del; }

	public boolean 		isStorno() 					{ return storno; }

	public Date 		getRegelDatum() 			{ return regelDatum; }



	

	

	public void setId(			int id	) 			{ this.id = id; 	}

	public void setKonto(		Konto konto	) 		{ this.konto = konto; }

	public void setText(		String text	) 		{ this.text = text; }

	public void setBetrag(		BigDecimal betrag) 	{ this.betrag = betrag; }

	public void setDel(			boolean del) 		{ this.del = del; }

	public void setStorno(		boolean storno) 	{ this.storno = storno; }

	public void setRegelDatum(	Date regelDatum) 	{ this.regelDatum = regelDatum; }

		

	

}

Konto.java
Java:
package objects;

import java.awt.Color;
import java.util.HashSet;
import java.util.Set;


public class Konto {

	private	int 		   id;
	private	String 		   bez;
	private Color 		   farbe;
	private Set<Buchung>   buchung = new HashSet<Buchung>();

	
	
	public int 				getId() 			{ return id; }
	public String 			getBez() 			{ return bez; }
	public Color 			getFarbe()			{ return farbe; }
	public Set<Buchung>		getBuchung()     	{ return buchung; }

	
	public void setId( 		int id ) 				 { this.id = id; }
	public void setBez( 	String bez) 			 { this.bez = bez; }
	public void setFarbe( 	Color farbe) 			 { this.farbe = farbe; }
	public void setBuchung(Set<Buchung> buchung) { this.buchung = buchung; }
	
	
}


Buchung.hbm.xml
[xml]
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="objects.Buchung" table="BUCHUNG">
<id name="id" column="ID" type="integer">
<generator class="native"/>
</id>
<property name="text" column="TEXT" type="string" not-null="true"/>
<property name="betrag" column="BETRAG" type="big_decimal"/>
<property name="datum" column="DATUM" type="timestamp"/>
<property name="regelDatum" column="REGEL_DATUM" type="date" not-null="true"/>
<property name="del" column="DELETE" type="boolean"/>
<property name="storno" column="STORNO" type="boolean"/>

<many-to-one name="konto" column="ID_KONTO" class="objects.Konto"/>

</class>
</hibernate-mapping>

[/xml]

Konto.hbm.xml
[xml]
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="objects.Konto" table="KONTO">
<id name="id" column="ID" type="integer">
<generator class="native"/>
</id>
<property name="bez" column="BEZ" type="string" not-null="true"/>
<property name="farbe" column="FARBE" type="java.awt.Color"/>


<set name="buchung" cascade="all" lazy="true">
<key column="ID_KONTO"/>
<one-to-many class="objects.Buchung"/>
</set>

</class>
</hibernate-mapping>

[/xml]

So, nun versuche ich ein Konto anzulegen:
Java:
Konto kto = new Konto();
			kto.setBez("Schule");
			kto.setFarbe(Color.black);
			kto.setId(1);
			
			
			session = InitSessionFactory.getInstance()
	         .getCurrentSession();

		     tx = session.beginTransaction();

		     session.save(kto);
		     tx.commit();

Das ganze wird natürlich noch etwas ausgelagert, dient nur zu Testzwecken.
Wenn ich mir das ganze ausgeben lasse (hab dafür ne Methode geschrieben) gibt er auch brav alles aus.

Nun Versuche ich eine Buchung durchzuführen:
Java:
	Buchung bg = new Buchung();
			bg.setId(1);
			bg.setBetrag(new BigDecimal(12.0));
			bg.setDatum(new Timestamp(12345));
			bg.setRegelDatum(null);
			bg.setStorno(false);
			bg.setText("tesbuchung");
			bg.setDel(false);
			bg.setKonto(KontenControler.getKontoById(1));
			
			
			BuchungsControler.save(bg);

Die Methode save ist static.
Prinzipiell steht in ihr das drine was ich oben beim Konto schon gemacht habe, nur mit etwas mehr exception handling.

Nun um zum Ende zu kommen: Das geht nicht ;)
Als Exception-Message erhalte ich "null".

Hab ich da irgendwas falsch verknüpft?
Warum funktioniert das so nciht?
Danke für eure Hilfe! :)
 
M

maki

Gast
Tu dir selbst einen gefallen und :
1. Nutze die moderne Variante, mit Annotations, anstatt XML Dateien
2. Benutzte eine Java konforme Formatierung (COBOL war gestern ;) )
3. Setze nicht die ID selber
4. Gib uns den ganze Exception Stacktrace
5. Fang mit kleineren Übungsbeispielen an, die weniger verwirrend sind
 

Fokus

Mitglied
Hi :)

Mit den Annotations gebe ich dir recht, dennoch wollte ich beides mal ausprobiert haben ;)

Was hast du gegen die Formatierung einzuwenden?
Weil ich die getter und setter in einer Zeile schreibe?
Diese art der Formatierung benutze ich nur bei den getter/settern, finde sie aber auch für diesen Anwendungsfall vollkommen ausreichend.

Stimmt, die ID müsste ich auch nicht selber setzen. War auch nur n Test :)


Narf.. sorry... hätte ihn mir mal ausgeben lassen sollen.
Fehler gefunden >.<
Null war für das RegelDatum kein korrekter wert.
 
M

maki

Gast
Was hast du gegen die Formatierung einzuwenden?
Weil ich die getter und setter in einer Zeile schreibe?
Diese art der Formatierung benutze ich nur bei den getter/settern, finde sie aber auch für diesen Anwendungsfall vollkommen ausreichend.
Diese Art der Formatierung stammt noch aus COBOL und PL1 Zeiten, hat nix in Java Quellcode verloren:
Java:
    private int         id;
 
    private Konto       konto;
 
    private String      text;
 
    private BigDecimal  betrag;
 
    private Timestamp   datum;
 
    private boolean     del;
 
    private boolean     storno;
 
    private Date        regelDatum;
So sollte das sein:
Java:
    private int id;
    private Konto konto;
    private String text;
    private BigDecimal betrag;
    private Timestamp datum;
    private boolean del;
    private boolean storno;
    private Date regelDatum;
Wenn die Liste der Variablen zu lang wird und dadurch unübersichtlich, ist das ein gutes Zeichen dass da eine neue Klasse drinnsteckt und auszubrechen versucht ;)
 

Fokus

Mitglied
Diese Art der Formatierung stammt noch aus COBOL und PL1 Zeiten, hat nix in Java Quellcode verloren:
Java:
    private int         id;
 
    private Konto       konto;
 
    private String      text;
 
    private BigDecimal  betrag;
 
    private Timestamp   datum;
 
    private boolean     del;
 
    private boolean     storno;
 
    private Date        regelDatum;
So sollte das sein:
Java:
    private int id;
    private Konto konto;
    private String text;
    private BigDecimal betrag;
    private Timestamp datum;
    private boolean del;
    private boolean storno;
    private Date regelDatum;
Wenn die Liste der Variablen zu lang wird und dadurch unübersichtlich, ist das ein gutes Zeichen dass da eine neue Klasse drinnsteckt und auszubrechen versucht ;)


Ach das meintest du :)
Die Formatierung ist irgendwie beim kopieren hobs gegangen.
In echt sind die zusammengerückt bzw. ohne freie zeile ;)

Hatte nur keine Lust es hier noch mal zu ändern, sry :)
 
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
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
G Hibernate speichert Daten nur während Session in HSQL-DB Allgemeine Java-Themen 10
OnDemand Zugangsdaten externer Systeme sicher speichern Allgemeine Java-Themen 8
Z Passwort Versuche speichern Allgemeine Java-Themen 8
M Eigene Datenstruktur um eine Menge zu speichern Allgemeine Java-Themen 3
8u3631984 Bilder in Datenbank speichern - sinnvoll Allgemeine Java-Themen 5
melaniemueller Einzelne Zeile aus einer txt Datei in einem String speichern Allgemeine Java-Themen 12
killig Textdatei einlesen und in HashMap speichern (duplikate entfernen) Allgemeine Java-Themen 12
J (Geplante) Änderungen an einer Datei vorübergehend speichern und anwenden? Allgemeine Java-Themen 12
N zweidimensionalen Array in dreidimensionalen Array speichern Allgemeine Java-Themen 4
temi Lösung zum Speichern von Deltafiles Allgemeine Java-Themen 6
J Java Filechooser Speichern Allgemeine Java-Themen 8
N Arrayliste in eine Datei speichern Allgemeine Java-Themen 4
H Elemente aus ArrayList in Array speichern Allgemeine Java-Themen 8
platofan23 Wie .txtDatei im Java Eclipse-Projekt bzw. in der Jar speichern? Allgemeine Java-Themen 7
MiMa Werte in liste speichern? Allgemeine Java-Themen 3
S Swing Speichern nach Button-Klick Allgemeine Java-Themen 5
H ArrayListe in CSV Datei speichern Allgemeine Java-Themen 6
H Mehrere Datentypen in einer Arraylist speichern Allgemeine Java-Themen 9
H Objekte speichern und laden Allgemeine Java-Themen 10
H Objekte speichern und laden Allgemeine Java-Themen 1
H Objekt speichern und laden Allgemeine Java-Themen 1
H Objekt speichern und laden Allgemeine Java-Themen 1
T Speichern von Objekten Allgemeine Java-Themen 2
M Schnelleres Speichern von XML-Daten über URLConnection Allgemeine Java-Themen 4
D .txt Datei in .jar Datei speichern Allgemeine Java-Themen 3
M Key-File im selben Ordner speichern? Allgemeine Java-Themen 18
J int Werte in einer anderen Klasse in Arrays speichern Allgemeine Java-Themen 3
Aruetiise Funktion(y = mx+n) in String speichern und berechnen Allgemeine Java-Themen 9
S Eindimensionales Array in zweidimensionales Array speichern Allgemeine Java-Themen 5
offi Excel mit Inhalten aus DB öffnen ohne zu speichern Allgemeine Java-Themen 8
MiMa Speichern von Programmeinstellungen in Datei Allgemeine Java-Themen 7
F Best Practice Große Anzahl an Objekten speichern und lesen Allgemeine Java-Themen 19
B Von String zu <Objekt> ||Speichern/Laden Allgemeine Java-Themen 17
Arif Input/Output Dateien im Jar-Programm speichern Allgemeine Java-Themen 12
Q-bert Strings aus der JList in eine Datenbank speichern Allgemeine Java-Themen 1
L CSV File lesen, in ArrayList speichern und ausgeben Allgemeine Java-Themen 3
Q-bert Daten von Java Programm speichern Allgemeine Java-Themen 4
@SupressWarnings() Feste Kosten speichern Allgemeine Java-Themen 4
N ZIp datei direkt im eclipse speichern Allgemeine Java-Themen 4
N Das Ende von bestimmten zeilen in text datei ändern und speichern Allgemeine Java-Themen 3
C Best Practice Speichern kleineren Mengen Stammdaten? Allgemeine Java-Themen 3
X Mehrere booleans in Datei Speichern, Updaten und Laden Allgemeine Java-Themen 1
F Json in sql speichern und lesen Allgemeine Java-Themen 10
F Alte Passörter mit Gson und Json in SQL speichern? Allgemeine Java-Themen 5
K API-Key sicher speichern Allgemeine Java-Themen 2
K Große Mengen an Daten speichern Allgemeine Java-Themen 9
B Zahlen manuell eingeben und in Array Speichern Allgemeine Java-Themen 2
K Input/Output String aus einer Datei einlesen und in anderer Datei speichern Allgemeine Java-Themen 20
Tacofan Bilder in Resource speichern Allgemeine Java-Themen 6
C Objekte in Array List speichern? Allgemeine Java-Themen 1
OnDemand Objekte speichern Allgemeine Java-Themen 8
O Klassen Bruch im gleichen Objekt Speichern Allgemeine Java-Themen 1
J Text lesen und in Variablen speichern Allgemeine Java-Themen 3
U Variablen Stringarrays mit wenig verschiedenen Zeichen effizienter speichern Allgemeine Java-Themen 10
HarleyDavidson Input/Output Heruntergeladene Datei direkt nach dem Download öffnen ohne zu speichern Allgemeine Java-Themen 1
J Daten persistent speichern Allgemeine Java-Themen 14
S JavaMail - MailSubject,MailFrom,MailDate in String Array speichern NullPointerException Allgemeine Java-Themen 2
M Objekt serialisieren/deserialisieren und in einer SQLite-Datenbank speichern Allgemeine Java-Themen 3
R HtmlUnit: Canvas als Bild speichern Allgemeine Java-Themen 0
E KeyCode in anderer Klasse speichern Allgemeine Java-Themen 2
M YouTube-Video herunterladen und speichern Allgemeine Java-Themen 10
C Position speichern von verschiebbaren Elementen auf JPanel Allgemeine Java-Themen 3
S Wertepaar in LinkedList/PriorityQueue speichern Allgemeine Java-Themen 3
Developer_X Input/Output Serialisiertes Objekt speichern und laden Allgemeine Java-Themen 1
J Arraylist speichern und laden? Allgemeine Java-Themen 5
S speichern von RSA-Keys Allgemeine Java-Themen 1
3 OOP Instanzen aus einer Klasse persistent speichern. Allgemeine Java-Themen 9
GUI-Programmer Mp3 Dateien bearbeiten und speichern Allgemeine Java-Themen 3
G Suchweg durch Binärbaum speichern Allgemeine Java-Themen 4
D IP-Cam live stream speichern Allgemeine Java-Themen 9
javampir Lange Bitfolge speichern Allgemeine Java-Themen 3
M Methoden in Rescources speichern Allgemeine Java-Themen 4
L iText PDF-Generierung ohne Speichern Allgemeine Java-Themen 10
U Screenshot erstellen und speichern Allgemeine Java-Themen 6
OnDemand Input/Output Variablen in Datei Speichern um sie wieder auszulesen Allgemeine Java-Themen 4
M Werte aus DB in Liste speichern ohne mehrfach speicherung Allgemeine Java-Themen 18
S XML lesen, verarbeiten, speichern klappt in Eclipse, aber nicht in der JAR Allgemeine Java-Themen 4
H JPA (EclipseLink) Neuer Eintrag in Collection speichern (unidirektional) Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben