Using Hibernate 3.2.0.CR1, Annotations 3.1beta9, EntityManager 3.1beta7
This works:
Code:
return em.createQuery("select m from Menu m where m.date = :date")
.setParameter("date", date, TemporalType.DATE)
.getSingleResult();
This throws an exception:
Code:
return em.createQuery("select m from Menu m where m.date = ?1")
.setParameter(1, date, TemporalType.DATE)
.getSingleResult();
Full stack trace of any exception that occurs:
Caused by: org.hibernate.QueryException: Named parameter does not appear in Query: 1 [select m from edu.cornerstone.portal.portlets.food.menu.model.Menu m where m.date = ?1]
at org.hibernate.hql.classic.QueryTranslatorImpl.getNamedParameterLocs(QueryTranslatorImpl.java:503)
at org.hibernate.loader.Loader.bindNamedParameters(Loader.java:1739)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1577)
at org.hibernate.loader.Loader.doQuery(Loader.java:661)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2145)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
at org.hibernate.loader.Loader.list(Loader.java:2024)
at org.hibernate.hql.classic.QueryTranslatorImpl.list(QueryTranslatorImpl.java:888)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1109)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:53)