Johannes7146
Goldschnabel
Wenn ich ein Objekt mit Hibernate in die DB speichere, wird es vollkommen korrekt in der DB angelegt. Es wird eine neue ID vergeben.
Das Objekt welches ich in Java habe, wird allerdings nicht aktualisiert, sprich die ID ist dort noch 0.
Testklasse:
Ausgabe:
Das hier ist die Methode des dbhandlers die ich zum Speichern nutze.
Die Session wird später durch einen Filter geschlossen.
Das hier ist meine Schulung.java:
Wo liegt der Fehler?
Hat jemand von euch eine Idee?
Das Objekt welches ich in Java habe, wird allerdings nicht aktualisiert, sprich die ID ist dort noch 0.
Testklasse:
Java:
public class Test {
public static void main(String[] args) {
Schulung s = new Schulung();
s.setOrt("Berlin");
s.setThema(dbhandler.getThemaById(2));
s.setDatum(new Timestamp(System.currentTimeMillis()));
try {
dbhandler.saveOrUpdateObject(s);
System.out.println(s.getId());
} catch (Exception e) {
e.printStackTrace();
}
}
}
Ausgabe:
Code:
Hibernate: insert into schulungen.schulung (ort, datum, thema_id, id) values (?, ?, ?, ?)
0
Das hier ist die Methode des dbhandlers die ich zum Speichern nutze.
Java:
public static void saveOrUpdateObject(Object o) throws Exception{
Session session = HibernateSessionFactory.currentSession();
Transaction t = session.beginTransaction();
t.begin();
session.saveOrUpdate(o);
t.commit();
}
Die Session wird später durch einen Filter geschlossen.
Das hier ist meine Schulung.java:
Java:
package com.ac.schulung.model;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name = "schulung", schema = "schulungen")
public class Schulung implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "id", unique = true, nullable = false, insertable = true, updatable = false, precision = 22, scale = 0)
private int id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "thema_id", unique = false, nullable = false, insertable = true, updatable = true)
private Thema thema;
@Column(name = "datum", unique = false, nullable = true, insertable = true, updatable = true, precision = 22, scale = 0)
private Timestamp datum;
@Column(name = "ort", unique = false, nullable = true, insertable = true, updatable = true, precision = 22, scale = 0)
private String Ort;
@OneToMany(fetch = FetchType.EAGER, mappedBy = "schulung")
private Set<Anmeldung> anmeldungen;
public int getId() {
return id;
}
public Set<Anmeldung> getAnmeldungen() {
return anmeldungen;
}
public void setAnmeldungen(Set<Anmeldung> anmeldungen) {
this.anmeldungen = anmeldungen;
}
public void setId(int id) {
this.id = id;
}
public Thema getThema() {
return thema;
}
public void setThema(Thema thema) {
this.thema = thema;
}
public Timestamp getDatum() {
return datum;
}
public void setDatum(Timestamp datum) {
this.datum = datum;
}
public String getOrt() {
return Ort;
}
public void setOrt(String ort) {
Ort = ort;
}
}
Wo liegt der Fehler?
Hat jemand von euch eine Idee?