a este som zabudol, teda nasledovna funkcia:
A objektA = objektAManager.getA(id-cko);
sa vykonava vo funkcii formBackingObject a prave preto aby som ho
prekopiroval (a doplnil) do "formularoveho" objektu.
formularovyObjekt.setObjektyB(objektA.getObjektyB());
toto prebehne ok (teda nie je zobrazena ziadna chyba, ale po zobrazeni
UI sa vypisuje uvedena chyba).
Ivan
Ivan Polák wrote / napísal(a):
ahojte,
asi som zabudol napisat, pouzivam Spring MVC, a objekt nacitavam vo
funkcii
protected Object formBackingObject(HttpServletRequest request) throws
Exception {
tato funkcia sa bez chyb vykona.
pouzivam viac strankovy formular (wizard) a az ked sa dostanem na
stranku kde sa ma pouzit nasledovny kod, vypise to chybu:
<c:forEach items="${A.objektyB}" var="objektA" varStatus="current">
</c:forEach>
Ivan
Josef Cacek wrote / napísal(a):
Ahojte,
budto mate spatne nakonfigurovany OpenSessionInViewFilter/Interceptor,
jak uz tu bylo napsano, nebo na dany objekt pristupujete v jinem
requestu, nez ve kterem byl nacteny (napr. ho mate ulozeny v http
session a zpracovavate ho ve vice requestech).
Reseni:
1) pouzit DTO namisto objektu vraceneho Hibernatem (tedy prekopirovani
potrebnych casti do noveho objektu)
2) pouzit dodatecnou model classu pro objekt A, kde by se vypnula Lazy
inicializace na mistech, kde je to potreba
3) pridat hned po nacteni objetku A neco takoveho:
for (B objB : objA.getObjektyB()) {
org.hibernate.Hibernate.initialize(objB);
}
-- pepa cacek # http://javlog.cacek.cz/
2008/2/19 Ivan Polák <[EMAIL PROTECTED]>:
zdravim,
pouzivam hibernate a v objekte A mam List objektov typu B:
@OneToMany(mappedBy = "objektB", fetch = FetchType.LAZY, cascade =
CascadeType.ALL)
@JoinColumn(name = "fk_b_id")
private List<B> objektyB;
ako vidiet hore pouzivam Lazy loading, ked nacitam objekt A:
A objektA = objektAManager.getA(id-cko);
natahujem objekt pomocou funkcie:
getHibernateTemplate().get
teda je jasne ze List objektov premenna objektyB nie je nacitany.
ako dosiahnem nacitanie "dotiahnutie" aj premennych typu List
(pripadne
inych collections) v objekte A.
vypisuje to nasledovnu chybu:
org.hibernate.LazyInitializationException: failed to lazily
initialize a collection of role:
com.freightservice.model.Shipper.shipperLicenceCertificateParameters,
no session or session was closed
dakujem
Ivan