Consulta no banco de dados

2 respostas
E

Bom dia pessoal!

Estou com problema aqui, preciso fazer uma busca no banco de dados. Eu executo a seguinte função no postgres:

select * from saude.profissional join saude.usuario_unidade on profissional.fk_usuario = usuario_unidade.fk_usuario and (usuario_unidade.fk_unidade_saude = '2'); e ele buscar os dados que eu necessito.

No meu programa eu faço o seguinte:

public List<String> listaProfissionaisPorNome(String nome) { String hql = "select e.pessoa.nome from Profissional e join UnidadeSaude u ON e.usuario = u.ususario and u.unidadeSaude =:unidadeSaude "+ "where e.pessoa.nome like :nome order by e.pessoa.nome"; Query consulta = this.session.createQuery(hql); consulta.setParameter("nome", "%" + nome + "%"); consulta.setParameter("unidadeSaude", ContextoUtil.getContextoBean().getUnidadeAtiva()); return (List<String>) consulta.list();

e fica dando erro no ‘ON’, se alguém puder me ajudar eu agradeço!
}

2 Respostas

lucianotome

Cara, apesar de ser meio parecido, a hql não segue a sintaxe do ANSI SQL, isto significa que expressões que funcionam no seu banco de dados não necessariamente funcionaram no hql, no caso das Associações e uniões com join ele não se utiliza da expressão ON para definir as associações, esta associação já esta definida nas expressões Ono-to-Many Many-To-Many, etc…
Alguns exemplos do manual do HQL:

from Cat as cat inner join cat.mate as mate left outer join cat.kittens as kitten

from Cat as cat left join cat.mate.kittens as kittens
from Formula form full join form.parameter param

No caso de uso de filtro, você pode usar a clausula WHERE…

E

Ok, valeu pela atenção. Abraços.

Criado 1 de fevereiro de 2012
Ultima resposta 1 de fev. de 2012
Respostas 2
Participantes 2