forloRn_
Legacy Member
Goedenavond,
Stel dat ik twee tabellen heb, Events en Providers. Events bevat naast wat andere kolommen een FK naar providerId. Vanuit het standpunt van Events gezien hebben we dan een many-to-one-relatie. Providers bevat naast zijn PK providerId, nog een displayName.
Ik gebruik in mijn DAO een Spring HibernateTemplate, bijvoorbeeld
In mijn business logic:
Ik meen ergens gelezen te hebben dat je bij lazy loading van HibernateTemplate.get() eigenlijk een proxy terugkrijgt, die via de bestaande Session luie properties alsnog kan ophalen uit de database, als je erom vraagt.
Bij het uitvoeren van de laatste regel krijg ik echter een LazyInitializationException, omdat de HibernateTemplate de Session netjes gesloten heeft op het einde van getEvent().
Ligt het aan mij, of is een HibernateTemplate in dat opzicht redelijk waardeloos? De brave jongen op http://www.codechimp.net/?p=24 raadt aan transactions te gebruiken maar dat vind ik geen goede oplossing, omdat 1) ik niets met transactions te maken wil hebben buiten mijn DAO en 2) ik transactions voor eenvoudige leesoperaties redelijk belachelijk vind.
Iemand een oplossing? OpenSessionInViewFilter en OpenSessionInViewInterceptor zijn volgens mij ook geen oplossing aangezien het niet om een webapplicatie gaat - de Hibernate Sessions zijn niet duidelijk afgebakend.
Dank bij voorbaat.
Stel dat ik twee tabellen heb, Events en Providers. Events bevat naast wat andere kolommen een FK naar providerId. Vanuit het standpunt van Events gezien hebben we dan een many-to-one-relatie. Providers bevat naast zijn PK providerId, nog een displayName.
Ik gebruik in mijn DAO een Spring HibernateTemplate, bijvoorbeeld
Code:
public EventDto getEvent(String eventId) {
return (EventDto)hibernateTemplate.get(EventDto.class, eventId);
}
In mijn business logic:
Code:
...
EventDto event = eventDao.getEvent(eventId);
event.getProvider().getDisplayName();
...
Ik meen ergens gelezen te hebben dat je bij lazy loading van HibernateTemplate.get() eigenlijk een proxy terugkrijgt, die via de bestaande Session luie properties alsnog kan ophalen uit de database, als je erom vraagt.
Bij het uitvoeren van de laatste regel krijg ik echter een LazyInitializationException, omdat de HibernateTemplate de Session netjes gesloten heeft op het einde van getEvent().
Ligt het aan mij, of is een HibernateTemplate in dat opzicht redelijk waardeloos? De brave jongen op http://www.codechimp.net/?p=24 raadt aan transactions te gebruiken maar dat vind ik geen goede oplossing, omdat 1) ik niets met transactions te maken wil hebben buiten mijn DAO en 2) ik transactions voor eenvoudige leesoperaties redelijk belachelijk vind.
Iemand een oplossing? OpenSessionInViewFilter en OpenSessionInViewInterceptor zijn volgens mij ook geen oplossing aangezien het niet om een webapplicatie gaat - de Hibernate Sessions zijn niet duidelijk afgebakend.
Dank bij voorbaat.
