DetachedCriteria Query
shinerella Jan 17, 2006 12:52 PMIm trying to use a Detached Criteria to make my queries. But I ran into a problem. Here I describe the situation
I have this class with the parameters to make the search, where I also define a Detached Criteria . that later on I 'll use on my session bean
@Name("searchParameters")
public DetachedCriteria getSearchCriteria() { searchCriteria = DetachedCriteria.forClass(CAROPrince.class); if (contains != null) { searchCriteria.add(Restrictions.ilike("code", contains, MatchMode.ANYWHERE)); } return searchCriteria; }
then I have a bean PrinceSearchAction
public class PrinceSearchAction implements Serializable, PrinceSearch { @PersistenceContext(unitName = "princes") private Session session; @PostConstruct public void setSession() { HibernateUtil.setSession(session); } @In(required = false, create = true) private CAROPrince prince; @In(required = false, create = true) PrinceSearchParameters searchParameters; @Out(required = false) private List<CAROPrince> returnprinces; public String findPrinces() { try { DetachedCriteria searchCriteria = searchParameters.getSearchCriteria(); Criteria crit = searchCriteria.getExecutableCriteria(session); crit.setMaxResults(100); returnprinces = crit.list(); } if (returnprinces.size()>0) { return "found"; } else { return "notfound"; } catch ( Exception e ) {/** * TODO:Implement error handeling when looking for princes in the future :) */ e.printStackTrace(); return "error"; } }
WELL, there is always problems when we search for a prince, but my problem is exacly in this line
-> Criteria crit = searchCriteria.getExecutableCriteria(session);
And I get the following exception :
INFO [STDOUT] java.lang.ClassCastException: org.jboss.ejb3.entity.InjectedHibernateSession
17:31:38,015 INFO [STDOUT] at org.hibernate.criterion.DetachedCriteria.getExecutableCriteria(DetachedCriteria.java:52)
17:31:38,015 INFO [STDOUT] at py.com.wpg.CooPy.contractManagement.ejb.ContractSearchAction.findContracts(ContractSearchAction.java:103)
17:31:38,015 INFO [STDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
17:31:38,015 INFO [STDOUT] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
17:31:38,015 INFO [STDOUT] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
17:31:38,015 INFO [STDOUT] at java.lang.reflect.Method.invoke(Method.java:585)
17:31:38,015 INFO [STDOUT] at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:109)
What Im doing wrong? Is that a correct way to use the detachedCriteria?