Hibernate - SQL próprio

4 respostas
T

Estou usando o Hibernate, e tenho algumas dúvidas, li alguns artigos etc… mas…
Na estrutura SQL, exemplo:

private SessionFactory factory;
.
.
.
.
public List getListaProdutos(String condicaoQueEstouFalando) throws Exception{
         Session session = factory.openSession();
         List produtos = session.find(condicaoQueEstouFalando);
         session.flush();
         session.close();
         return produtos;
}

o Hibernate tem uma própria, como se fosse a pl/sql da Oracle.
Onde eu encontro a lista disso.? Quero tirar mais vantagens em minhas querys.

Outra coisa:
E se um dia eu precisar fazer uma mudança, exilar o Hibernate (no bom sentido da palavra, :slight_smile: )…
Terei que refazer todo o SQL.
Há como usar o SQL puro, ou no caso do Oracle (se eu usar como banco).

O que é usado.?
Quem usa o Hibernate, o que me falam?
Como devo me desenvolver…?
Podem me instruir.

4 Respostas

J

Se você precisar fazer uma busca com HQL, dê uma olhada na documentação do hibernate:

http://hibernate.org/hib_docs/reference/en/html_single/#queryhql

G

“terra_jr”:
o Hibernate tem uma própria, como se fosse a pl/sql da Oracle.
Onde eu encontro a lista disso.? Quero tirar mais vantagens em minhas querys.

Exatamente. O Hibernate possui uma poderosa linguagem muito parecida com SQL. A grande diferança é que a HQL é orienta a objetos, permitindo utilizar herança, polimorfismo e associações.

http://www.hibernate.org/hib_docs/reference/en/html/queryhql.html

“terra_jr”:
Outra coisa:
E se um dia eu precisar fazer uma mudança, exilar o Hibernate (no bom sentido da palavra, :slight_smile: )…
Terei que refazer todo o SQL.
Há como usar o SQL puro, ou no caso do Oracle (se eu usar como banco).

Se você utilizar a API Criteria não ficará preso ao SQL, pois todo o SQL será gerado pelo Hibernate. A desvantagem de utilizar a Criteria API é que ela é menos poderosa do que a HQL, ela não suporta projeções e agregações.

http://www.hibernate.org/hib_docs/reference/en/html/querycriteria.html

T

Tem algo que nao entendi bem, talvez porque nao tenha usado, entao fico com duvidas em quais as vantagens no funcionamento.

Em java vejo muito claramente a importancia e vantagem disso, mas em instrucoes SQL.s…

Li algo sobre isso…

Polimorfismo e herancas em instruções? Onde e como poderei usar isso nas instruções?

podem por favor, coloca um exemplo, mas bem simples mesmo disso?

P

vc esta com duvidas nos beneficios do hibernate ou simplesmente da HQL???

em relação ao hibernate, eh incrivel vc manipular objetos e não aquele monte de result set e queries no seu codigo…o famoso CRUD fica muito facil…o cara ja tem os metodos .save(), .saveOrUpdate(), .load(), .list(), etc…para o desenvolvedor, fica mais claro o banco, ja q vc faz um FROM Objeto, e não FROM Tabela…

mas se na sua estrutura for necessário o uso de PROCs, vc pode chama-las pelo hibernate tb…e popular o resultado em Objetos…

se falar q um mapeamento bem feito, facilita tudo, por exemplo, vc tem um relacionamento 1…N, quando vc faz um .load() do lado 1, se vc quiser o proprio hibernate inicializa a collection do lado N, e ela ja fica ali, pronta pra ser usada…

putz, eu poderia ficar um tempão falando bem do hibernate, sou fã, hehehehehehe

em relação a HQL, vc utiliza quando as opções dos métodos ja prontos não te atendem…sempre usando OO…e mesmo assim se vc não conseguir fazer o q quer utilizando HQL, vc pode ir para o bom e velho SQL, uma vez num projeto fui obrigado a utilizar recursos especificos do banco, e tive q usar SQL…

espero ter ajudado…

flw

Criado 19 de dezembro de 2006
Ultima resposta 19 de dez. de 2006
Respostas 4
Participantes 4