DarthShader
Erfahrenes Mitglied
Hallo,
ich verwende Spring in Kombination mit Hibernate, und die Hilfsklassen, die Spring zur Verfügung stellt, wie z.B. HibernateDaoSupport und HibernateTemplate.
Wenn ich eine ganz einfach DAO verwende, die so aussieht:
dann ist es ja so, das Spring für mich das Öffnen und Schließen der Hibernate Session übernimmt. Bedeutet das aber, dass ich nach dem Aufruf von "getHibernateTemplate().saveOrUpdate" kein persistentes Objekt haben? Denn das hier geht anscheinend nicht:
Das Feld "irgendwas" landet dann nicht in der Datenbank, wird von Hibernate also nicht automatisch aktualisiert, auch nicht wenn ich ein "flush()" mache.
Habe ich es also richtig verstanden, dass mit dem "getHibernateTemplate().saveOrUpdate(..)" nach dem Aufruf die Hibernate Session geschlossen ist, und ich kein persistentes Objekt habe? So müsste ich in vielen Fällen ja auf den Komfort von HibernateTemplate verzichten, um "richtig" mit den Objekten (im Hibernate-Sinne) arbeiten zu können.
Über Eure Hilfe würde ich mich sehr freuen
Vielen Dank!
ich verwende Spring in Kombination mit Hibernate, und die Hilfsklassen, die Spring zur Verfügung stellt, wie z.B. HibernateDaoSupport und HibernateTemplate.
Wenn ich eine ganz einfach DAO verwende, die so aussieht:
Code:
public class HibernateProtocolDaoImpl extends HibernateDaoSupport implements ProtocolDao {
@Override
public void saveProtocol( Protocol protocol ) {
getHibernateTemplate().saveOrUpdate( protocol );
}
}
dann ist es ja so, das Spring für mich das Öffnen und Schließen der Hibernate Session übernimmt. Bedeutet das aber, dass ich nach dem Aufruf von "getHibernateTemplate().saveOrUpdate" kein persistentes Objekt haben? Denn das hier geht anscheinend nicht:
Code:
public class HibernateProtocolDaoImpl extends HibernateDaoSupport implements ProtocolDao {
@Override
public void saveProtocol( Protocol protocol ) {
getHibernateTemplate().saveOrUpdate( protocol );
protocol.setIrgendwas( true );
}
}
Das Feld "irgendwas" landet dann nicht in der Datenbank, wird von Hibernate also nicht automatisch aktualisiert, auch nicht wenn ich ein "flush()" mache.
Habe ich es also richtig verstanden, dass mit dem "getHibernateTemplate().saveOrUpdate(..)" nach dem Aufruf die Hibernate Session geschlossen ist, und ich kein persistentes Objekt habe? So müsste ich in vielen Fällen ja auf den Komfort von HibernateTemplate verzichten, um "richtig" mit den Objekten (im Hibernate-Sinne) arbeiten zu können.
Über Eure Hilfe würde ich mich sehr freuen
Vielen Dank!