zdravim konferenciu,
mohol by som poprosit niekoho kto sa stretol s nasledujucou chybou aby
mi objasnil o co ide:
Illegal attempt to associate a collection with two open sessions; nested
exception is org.hibernate.HibernateException: Illegal attempt to
associate a collection with two open sessions
org.springframework.orm.hibernate3.HibernateSystemException: Illegal
attempt to associate a collection with two open sessions; nested
exception is org.hibernate.HibernateException: Illegal attempt to
associate a collection with two open sessions
at
org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:659)
at
org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
at
org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:378)
at org.springframework.orm.hibernate3.HibernateTemplate.saveOrUpdate
pozrel som si nasledovny prispevok na fore pre Hibernate, ale nie som z
toho velmi mudry: http://forum.springframework.org/showthread.php?t=26782
uvedena chyba sa objavuje ked pouzivam vo funkcii:
protected Object formBackingObject(HttpServletRequest request) throws
Exception {
jeden "manazer" (service) pre jeden objekt na ziskanie objektu (oznacme
ho A) podla ID-cka predaneho v HTTP requeste, vytvorim formularovy
objekt a tento ziskany objekt A umiestnim do formularoveho objektu
formularovyObjekt.setObjekt(A) a nasledne vo funkcii
public ModelAndView onSubmit(HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors)
throws ServletException {
zavolam funkciu manazera na ulozenie druheho (formularoveho) objektu.
este dodam ze pouzivam na ukladanie objektov pomocou hibernate
nalsedovnu konstrukciu:
getHibernateTemplate().saveOrUpdate(objekt);
getHibernateTemplate().flush();
mapovanie v Hibernate hlavny (formularovy) objekt:
@ManyToOne (fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "fk_objekt_a_id", nullable = false)
private Objekt objekt;
teda vlastne objekt A sluzi na prepojenie hlavneho formularoveho objektu
a druhej tabulky (cudzi kluc).
dakujem
Ivan