Subselect criteria Hibernate

Bom dia a todos,

estou tentando fazer a seguinte query com criteria:

select m from Municipio m where m.id in (select max(m2.id) from Municipio m2 group by m2.codigo) order by m.codigo

Estou fazendo assim:

DetachedCriteria subQuery = DetachedCriteria.forClass(getEntityClass(), "m2");
	
	ProjectionList projectionList = Projections.projectionList();
	projectionList.add(Projections.property("m2.id"));
	projectionList.add(Projections.property("m2.codigo"));
	projectionList.add(Projections.max("m2.id"));
	projectionList.add(Projections.groupProperty("m2.codigo"));
	
	subQuery.setProjection(projectionList);
	
	criteria.add(Property.forName("id").in(subQuery));

Mas está dando o seguinte erro: Caused by: java.sql.SQLSyntaxErrorException: ORA-00913: valores demais.

Alguém poderia ajudar?

Este link ajuda a entender o erro. O que me parece é que você está passando valores demais para a condição. Talvez seja interessante rever e remover algumas coisas ali.