Not Exists no Criteria do Hibernate?

Pessoal estou reescrevendo um codigo que estava em HSQL de uma query para Criteria, mas não estou conseguindo alguem pode me ajudar, pois na Documentação do Hibernate não tem tantos exemplos:

codigo em HSQL:

[code] StringBuilder sql = new StringBuilder("from ");
sql.append("Centrocusto cc ");
sql.append("where ");
sql.append("cc.ativo = true and ");
sql.append("cc.clienteportal.grupoclientesForIdclipart.id.clienteportalByIdcliprinc.id = :idcli ");

	sql.append(" and not exists (from ");

	sql.append("Centrocusto cc ");
	sql.append("where ");
	sql.append("cc.ativo = true and ");
	sql.append("cc.clienteportal.grupoclientesForIdcliprinc.id.unilateral = true and ");
	sql.append("cc.clienteportal.grupoclientesForIdcliprinc.id.clienteportalByIdclipart.id = :idcli )");

	Query query = this.dao.getSession().createQuery(sql.toString());
	query.setInteger("idcli",usuario.getClienteportal().getId());[/code]

agora estou tentando fazer assim em criteria:[code]

	DetachedCriteria subQuery = DetachedCriteria.forClass(Centrocusto.class,"cc2");
	subQuery.createAlias("cc2.clienteportal", "cl2");
	subQuery.createAlias("cl2.grupoclientesForIdcliprinc", "gruCli2");
	subQuery.createAlias("gruCli2.clienteportalByIdclipart", "clPart2");
	subQuery.add(Restrictions.eq("cc2.ativo",true));
	subQuery.add(Restrictions.eq("gruCli2.unilateral",true));
	subQuery.add(Restrictions.eq("clPart2.id",usuario.getClienteportal().getId()));

	Criteria crit = this.dao.getSession().createCriteria(Centrocusto.class);
	crit.createAlias("clienteportal", "cl");
	crit.createAlias("cl.grupoclientesForIdclipart", "grCli");
	crit.createAlias("grCli.clienteportalByIdcliprinc", "clPri");
	crit.add(Restrictions.eq("ativo",true));
	crit.add(Restrictions.eq("clPri.id",usuario.getClienteportal().getId()));


	crit.add(Subqueries.notExists(subQuery));


	List lista2 = crit.setCacheable(true).list();[/code]

mas não esta funcionando gerar erro:org.mentawai.core.ActionException: java.lang.NullPointerException at org.hibernate.loader.criteria.CriteriaQueryTranslator.getProjectedTypes(CriteriaQueryTranslator.java:318) at org.hibernate.criterion.SubqueryExpression.toSqlString(SubqueryExpression.java:56) at org.hibernate.loader.criteria.CriteriaQueryTranslator.getWhereCondition(CriteriaQueryTranslator.java:334) at org.hibernate.loader.criteria.CriteriaJoinWalker.<init>(CriteriaJoinWalker.java:82) at org.hibernate.loader.criteria.CriteriaLoader.<init>(CriteriaLoader.java:67) at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1550) at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283) at br.com.maringa.requisicao.dao.gerenciadores.CentroCustoGerenciador.listarCcUnificadosGrupos(CentroCustoGerenciador.java:258) at br.com.maringa.requisicao.cad.parametrizacao.PorCCAction.listarCentroCusto(PorCCAction.java:269) at br.com.maringa.requisicao.cad.parametrizacao.PorCCAction.listarCC(PorCCAction.java:256) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:302) at org.mentawai.filter.InjectionFilter.filter(InjectionFilter.java:134) at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:116) at filtros.TotalizarStatusFilter.filter(TotalizarStatusFilter.java:18) at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:116) at org.mentawai.filter.DIFilter.filter(DIFilter.java:206) at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:116) at org.mentawai.filter.HibernateFilter.filter(HibernateFilter.java:187) at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:116) at org.mentawai.filter.IoCFilter.filter(IoCFilter.java:82) at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:116) at org.mentawai.filter.AuthenticationFilter.filter(AuthenticationFilter.java:69) at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:116) at org.mentawai.core.Controller.invokeAction(Controller.java:633) at org.mentawai.core.Controller.service(Controller.java:498) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119) at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595)