Javafree
Página Inicial do Fórum > Frameworks, APIs e IDE's

Hibernate: de SQL para HQL



Criar novo tópico   Responder tópico


  1. wood
    Posts:5


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Olá pessoal,

    Estou tentando transformar uma query em SQL para HQL mas não estou conseguindo.

    Cenário:
    Tabela questão, tabela palavra_chave, tabela questao_has_palavra_chave.
    Uma questão tem uma ou mais palavras-chave.

    A tabela questao_has_palavra_chave não tem mapeamento, pois ela não possui nenhum atributo.
    A inserção de todas as entidades está OK, o problema acontece só nessa query que eu quero fazer.

    Problema:
    O problema é transformar a SQL em HQL.
    Eu quero retornar todas as questões que tem uma palavra-chave. Para fazer isso, na SQL, eu faço uma pesquisa na tabela questao_has_palavra_chave e verifico quais são as questões. No hibernate, como essa tabela não está mapeada, eu não consigo fazer essa pesquisa.

    A pergunta: Tem como eu fazer essa consulta sem fazer o mapeamento desta tabela intermediária (questao_has_palavra_chave)? Como?

    Segue a consulta SQL.


    Abraço



  1. lap_junior
    Posts:916


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    [quote="wood"]No hibernate, como essa tabela não está mapeada, eu não consigo fazer essa pesquisa.



    Quem disse que não, claro que consegue. Apenas não olhe para a consulta em HQL da mesma forma que vc olha em SQL.

    Para o Hibernate vc tem um mapeamento para o classe Questão e um mapeamento para a classe PalavraChave e em ambos a associação n-para-n. Com HQL vc irá fazer selecionar todas as questões com um "right join fetch" da PalavraChave e com uma condição para a descrição da palavra chave ser igual a "rede", como no seu exemplo.

    flw
    _________________



  1. lap_junior
    Posts:916


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Não duplique post http://www.javafree.org/javabb/viewtopic.jbb?t=857190&page=1#116508

    flw
    _________________



  1. wood
    Posts:5


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Vou dar uma estudada no que vc sugeriu.

    Quanto a duplicar o post, eu expliquei. O motivo é que o botão mudou o caption para Aguarde... e não saia mais dessa tela.



  1. wood
    Posts:5


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Junior, obrigado pela resposta.
    Funcionou beleza.

    Agora surgiu outra dúvida. No mapeamento (A)1 - N(B), quando eu faço um select em B e quero retornar A (o mapeamento é bidirecional) em B, como eu faço isso?

    Abrç



  1. harthmann
    Posts:1


    Comment Arrow

    Publicado em: 27/02/2014 01:21:51

    Pessoal, sou novo no fórum e tenho pouca experiência com HQL. Preciso converter uma consulta SQL que está funcionado para uma consulta HQL que tentei e não tive sucesso.

    Abaixo estrutura das duas tabelas onde faço a consulta:



    Consulta SQL funcionando:



    Consulta HQL (tentativa sem sucesso)



    retorna erro: java.lang.NullPointerException no HQL Editor
    _________________

    Tio



  1. D3z40
    Posts:1530


    Comment Arrow

    Publicado em: 27/02/2014 21:54:01

    [quote="harthmann"]Pessoal, sou novo no fórum e tenho pouca experiência com HQL. Preciso converter uma consulta SQL que está funcionado para uma consulta HQL que tentei e não tive sucesso.

    Abaixo estrutura das duas tabelas onde faço a consulta:



    Consulta SQL funcionando:



    Consulta HQL (tentativa sem sucesso)



    retorna erro: java.lang.NullPointerException no HQL Editor



    Acho que seria melhor você criar um novo tópico.
    _________________

    Para organização do fórum sempre poste suas dúvidas no TÓPICO que mais se encaixa com o real problema da dúvida.

    Por favor, nunca esqueça de editar os códigos de seu post com as tag CODE.



  1. Relacionados