Fórumok
EJB-vel kapcsolatos kalandjaim folytatódnak... Jelenleg a probléma, hogy van egy ilyen kód:
public List<Book> findBasic(String key) {
Query q = em.createQuery("SELECT a FROM Book a " +
"WHERE a.title LIKE '%:key%' " +
"OR a.subtitle LIKE '%:key%' " +
"OR a.desc LIKE '%:key%'");
q.setParameter("key", key);
return q.getResultList();
}
A szervletből ez így hívódik:
String key = request.getParameter("key");
List<Book> res = bookBean.findBasic(key);
És erre egy ilyen kivételt kapok:
javax.ejb.EJBException: java.lang.IllegalArgumentException: org.hibernate.QueryParameterException: Could not locate named parameter [key]
Erre valakinek valami tipp, hogy miért nem megy?
- 1056 megtekintés
Hozzászólások
szerintem csináld úgy, hogy LIKE :key és a q.setParameter("key", "%" + key + "%"); legyen.
- A hozzászóláshoz be kell jelentkezni
És ezen kívül nem kell aposztrófok közé tenni, azt elintézi a Hibernate belül.
- A hozzászóláshoz be kell jelentkezni
Köszi, megfogadtam mindkét tanácsot és most megy.
- A hozzászóláshoz be kell jelentkezni