Problemas fazendo um criteria com projections
23/07/2008 00:00
0
Fala galera, belezinha? Estou tentando fazer um criteria com projections pra limitar a cláusula select no HQL gerado, mas estou tendo um erro que alias não é um método de HibernateCriteriaBuilder (e não é mesmo, é de Projections apenas). O problema é que ainda nao descobri como acessar o HibernateTemplate que o Domain utiliza por baixo dos panos, para poder fazer as paradas com o Criteria do Hibernate ao invés do builder do grails, que faltam estes métodos.
Como faço para fazer isso?
Obrigado desde já
Rafael Mauricio Nami
PS: O código que mais chegou perto foi esse aqui:

static List<PessoaJuridica> pesquisarPessoasJuridicas(Map filtro) &#123;
def criteria = PessoaJuridica.createCriteria()
List<PessoaJuridica> result = criteria&#123;
projections&#123;
alias(property('id'), 'id')
alias(property('nome'), 'nome')
alias(property('nomeFantasia'), 'nomeFantasia')
alias(property('numeroCpfCnpj'), 'numeroCpfCnpj')
&#125;
and &#123;
if(filtro.nome != null) &#123;
like('nome', '%'+filtro.nome+'%')
&#125;
if(filtro.id != null) &#123;
idEq(Long.valueOf(filtro.id))
&#125;
if(filtro.nomeFantasia != null) &#123;
like('nomeFantasia', '%'+filtro.nomeFantasia+'%')
&#125;
if(filtro.idSituacaoCadastro != null) &#123;
eq('idSituacaoCadastro', filtro.idSituacaoCadastro)
&#125;
if(filtro.numeroCpfCnpj != null) &#123;
eq('numeroCpfCnpj', filtro.numeroCpfCnpj)
&#125;
if(filtro.periodoDe != null &amp;&amp; filtro.periodoAte != null) &#123;
between('dataInclusao', filtro.periodoDe, filtro.periodoAte)
&#125;
&#125;
setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
&#125;
return result
&#125;
Tags: Grails


Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto