Como usar HUNT COUNT (*) com hibernação

Preciso criar uma consulta e precisoCOUNT(*) eHAVING COUNT(*) = x.

Estou usando uma solução alternativa que usa oCustomProjection classe, que eu baixei em algum lugar.

Este é o SQL que tento alcançar:

select count(*) as y0_, this_.ensayo_id as y1_ from Repeticiones this_
inner join Lineas linea1_ on this_.linea_id=linea1_.id
where this_.pesoKGHA>0.0 and this_.nroRepeticion=1 and linea1_.id in (18,24)
group by this_.ensayo_id
having count(*) = 2

Este é o código, onde eu uso oProjection Classe Hibernate:

critRepeticion.setProjection(Projections.projectionList()
                .add( Projections.groupProperty("ensayo") )
                .add( CustomProjections.groupByHaving("ensayo_id",Hibernate.LONG,"COUNT(ensayo_id) = "+String.valueOf(lineas.size()))
                .add( Projections.rowCount() )
                );

O erro é:

!STACK 0
java.lang.NullPointerException
at org.hibernate.criterion.ProjectionList.toSqlString(ProjectionList.java:50)
at org.hibernate.loader.criteria.CriteriaQueryTranslator.getSelect(CriteriaQueryTranslator.java:310)
at org.hibernate.loader.criteria.CriteriaJoinWalker.<init>(CriteriaJoinWalker.java:71)
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 ar.com.cse.cseagro.controller.RepeticionController.buscarEnsayo(RepeticionController.java:101)

Se eu comentar a linha comCustomProjections class, a consulta funciona, mas não recebo oHAVING COUNT(*) filtro no SQL ...

Basicamente, a consulta tenta recuperar, em um esquema de detalhes mestre, todos os registros mestre onde uma lista de detalhes está presente simultaneamente, como se você quiser saber "quais faturas possuem os dois produtos, A e B"

Por isso, se eu tiver 3 itens noIN cláusula, eu preciso usarHAVING COUNT = 3 cláusula.

Alguma idéia ou sugestão? Cumprimentos

questionAnswers(4)

yourAnswerToTheQuestion