I am trying to execute two JPQL queries in an EJB3 application deployed on a JBoss
4.2.2.GA. The code looks as follows:
| String queryString1 = "select sub from Subscription sub where sub.itemPattern in
(select ip from ItemPattern ip where ip.caption = :c)";
| List<?> queryResultList =
em.createQuery(queryString1).setParameter("c",
"myCaption").getResultList();
| String queryString2 = "select itm from green20.demo.items.Item itm where
itm.persistenceID =:p";
| List<?> queryResultList2 =
em.createQuery(queryString2).setParameter("p", 2).getResultList();
|
While the first query works fine, the second one results in the following error:
| org.hibernate.QueryParameterException: could not locate named parameter [p]
|
Even more strange: When I try to switch to a numbered parameter, like this
| String queryString2 = "select itm from green20.demo.items.Item itm where
itm.persistenceID =?1";
| List<?> queryResultList2 = em.createQuery(queryString2).setParameter(1,
2).getResultList();
|
the error message stays the same and still complains about a named parameter:
| org.hibernate.QueryParameterException: could not locate named parameter [1]
|
This is also not affected by whether I pass the parameter value as int (2), String
("2") or Integer (new Integer(2)).
The only difference I can notice between the two queries is that in the second one I'm
using a fully qualified name for the persisted Entity because the class is defined in a
different package. Maybe Hibernate gets confused by that?
Can anybody give me a hint? I'm totally out of ideas.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4155531#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...