Hallo zusammen,
ich versuche, eine kleine Anwendung mit Hibernate, Spring und Struts zu machen.
Dafür habe ich mir folgendes Konzept überlegt:
- Der DB-Zugriff erfolgt über DAOs, die direkt mit Hibernate arbeiten:
z.B. UserDaoImpl.java enthält eine Methode getUserById(Integer id) mit folgendem Inhalt:
- Zwischen DAO und Präsentationsschicht (Struts2) liegt eine Service-Schicht, die teilweise die DAO-Methoden "durchschleift", aber z.B. auch kompliziertere Dinge macht, bevor sie in die Datenbank (über die entsprechenden DAOs, die von Spring injected werden) geschrieben werden.
Nun habe ich ein - zumindest für mich - seltsames Problem:
In einer Struts-Action möchte ich Formulardaten in das User-Objekt schreiben. Dazu hole ich mir das entsprechende User-Objekt aus der Datenbank (über eine entsprechende Methode der Service-Schicht, welche wiederrum das UserDAO kontaktiert). Anschließend ändere ich die Property des geholten Objekts auf den neuen Wert, der vom Formular kommt.
Alles beendet sich normal, es gibt keine Exceptions.
Aber: Der Wert wurde nicht in die Datenbank geschrieben.
Ich habe irgendwo gelesen, dass das Objekt vermutlich detached ist, deswegen war mein zweiter Versuch, eine "attach"-Methode in der UserDAO zur Verfügung zu stellen:
Diese Methode habe ich wieder über die Service-Schicht durchgeschleift; wenn ich dann das geänderte User-Objekt übergebe, passiert allerdings (leider) auch ncihts.
Ich weiß echt nicht mehr weiter, es wäre super, wenn mir jemand von euch helfen würde!
Vielen dank und schöne Grüße,
mmm
ich versuche, eine kleine Anwendung mit Hibernate, Spring und Struts zu machen.
Dafür habe ich mir folgendes Konzept überlegt:
- Der DB-Zugriff erfolgt über DAOs, die direkt mit Hibernate arbeiten:
z.B. UserDaoImpl.java enthält eine Methode getUserById(Integer id) mit folgendem Inhalt:
Code:
return (User) getHibernateTemplate().get(User.class, id);
- Zwischen DAO und Präsentationsschicht (Struts2) liegt eine Service-Schicht, die teilweise die DAO-Methoden "durchschleift", aber z.B. auch kompliziertere Dinge macht, bevor sie in die Datenbank (über die entsprechenden DAOs, die von Spring injected werden) geschrieben werden.
Nun habe ich ein - zumindest für mich - seltsames Problem:
In einer Struts-Action möchte ich Formulardaten in das User-Objekt schreiben. Dazu hole ich mir das entsprechende User-Objekt aus der Datenbank (über eine entsprechende Methode der Service-Schicht, welche wiederrum das UserDAO kontaktiert). Anschließend ändere ich die Property des geholten Objekts auf den neuen Wert, der vom Formular kommt.
Alles beendet sich normal, es gibt keine Exceptions.
Aber: Der Wert wurde nicht in die Datenbank geschrieben.
Ich habe irgendwo gelesen, dass das Objekt vermutlich detached ist, deswegen war mein zweiter Versuch, eine "attach"-Methode in der UserDAO zur Verfügung zu stellen:
Code:
public void attachUser(User u) {
getHibernateTemplate().lock(u, LockMode.NONE);
}
Diese Methode habe ich wieder über die Service-Schicht durchgeschleift; wenn ich dann das geänderte User-Objekt übergebe, passiert allerdings (leider) auch ncihts.
Ich weiß echt nicht mehr weiter, es wäre super, wenn mir jemand von euch helfen würde!
Vielen dank und schöne Grüße,
mmm