[RESOLVIDO] Duvida Hibernate criar criteria com to_number

5 respostas
R

Boa Tarde Galera,

Estou com uma duvida de como criar uma criteria no hibernate como este select :

select * from contatos where to_number(to_char(dtNascimento,‘MM’)) = 1;

Pegar todos os contatos que tenham nascido em janeiro nao importando o Ano.

Estou utilizando Bco Oracle e Hibernate Annotation.

Alguem tem alguma ideia ?

Obrigado,
Rodrigo

5 Respostas

jcmird

Opa garoto!!!
Já tive essa necessidade e infelizmente na hql não temos o to_number entao eu fiz desta forma e funcionou.

adiciona a sua clausula where conforme o comando abaixo:

c1.add(Restrictions.sqlRestriction(" to_number(to_char(dtNascimento,‘MM’)) = 1"));

E

jcmird:
Opa garoto!!!
Já tive essa necessidade e infelizmente na hql não temos o to_number entao eu fiz desta forma e funcionou.

adiciona a sua clausula where conforme o comando abaixo:

c1.add(Restrictions.sqlRestriction(" to_number(to_char(dtNascimento,‘MM’)) = 1"));

Mas isso eh nativo de banco, no qual nao eh mto viável. Pode ser feito algo assim:

public List<Contatos> buscarContatosPorMes(String mes){	
       Query  q  = session.createQuery("SELECT c FROM Contato c WHERE " +
                                       " MONTH(c.seuBeanDataQDesejaFiltrar) = ? " );        	
        q.setString(0, mes);
        return q.list();
        	
}
jcmird

Opa verdade a solução acima é melhor mesmo … mas se quiser usar to_number só query native :frowning:

R

Como eu faço no exemplo que o nosso amigo ebarros falou com os mapeamentos para outras tabelas que eu tenho na minha anotação ?

Valeu Galera.

[]´s
Rodrigo

R

Fiz o exemplo do nosso amigo jcmird e funcionou legalzinho…A unica alteração é a inclusao do {alias}. para não dar conflito com outras colunas.

Value Galera.

[]´s
Rodrigo

Criado 3 de março de 2009
Ultima resposta 4 de mar. de 2009
Respostas 5
Participantes 3