[ zmau @ 01.06.2009. 13:23 ] @
Imam jednostavan Query sa parametrom koji je entitet. Vrednost tog entiteta setujem pozivom setEntity (probao sam i setParameter). Upit se regularno okine i vrati očekivani resultSet, međutim, kasnije, pri flašovanju sesije okine se update nad bazom koji null-uje vrednosti jednake vrednosti parametra u tabeli iz upita (što mi naravno nije namera). Konkretno, kod izgleda ovako : Code: String query = "select c from Contact c where mate = :mate"; Query qFriend = getSession().createQuery(query); qFriend.setParameter("mate", user); List<Contact> contactList = qFriend.list(); i, nešto kasnije, Code: Session session = (Session)currentSession.get(); session.flush(); session.getTransaction().commit(); Hibernate na konzolu ispiše po Code: za svaki od recorda koje vrati gornji select, i taj kod setuje svaki mateId na null.Hibernate: update contact set ownerId=?, mateId=?, outsiderId=? where id=? U specifikaciji na https://www.hibernate.org/hib_docs/v3/api/ vidim da metode setEntity i setParameter služe baš za to i ne pominju se nikakvi bočni efekti. Dakle, u čemu je ovde fazon ? Odnosno, kako se uopšte setuju vrednosti entitetskih parametara ? |