Qual é a vantagem do Criteria, createSQLQuery e createQuery

Ola. Gostaria de saber quais são as vantagens em usar Criteria, createSQLQuery e createQuery do Hibernate ? Eu entendi que o createSQLQuery você pode criar um query usando o SQL e o createQuery você usa o HQL. E o Criteiria ??? Gostaria mais detalhes sobe eles.

Obrigado

Você precisa entender o básico do JPA, esse post vai te ajudar: http://uaihebert.com/?p=1622

Critéria é bom para consultas dinâmicas, JPQL (ou HQL) é uma consulta portável entre databasese. createSQL você cria uma consulta com sql nativo do banco de dados e createQuery você cria um JPQL(ou HQL).

Hebert, to dando uma lida no seu site e aproveitando o gancho, uma questão mais prática:

SQL

Select A.nome, M.nome
from aluno A, materia M
where M.idAluno = A.idAluno

digamos que ja mapiei todas as classes, os Ones, Manys etc…

tenho uma tela que lista e filtra alunos

tenho uma tela que lista e filtra matérias

tenho uma tela que imprime um relatório de alunos e suas respectivas matérias

digamos que eu queira abolir o SQl do meu sistema onde eu usaria o HQL e o Critéria e como ficaria o sql acima ?

[quote=douglaskd]Hebert, to dando uma lida no seu site e aproveitando o gancho, uma questão mais prática:

SQL

Select A.nome, M.nome
from aluno A, materia M
where M.idAluno = A.idAluno

digamos que ja mapiei todas as classes, os Ones, Manys etc…

tenho uma tela que lista e filtra alunos

tenho uma tela que lista e filtra matérias

tenho uma tela que imprime um relatório de alunos e suas respectivas matérias

digamos que eu queira abolir o SQl do meu sistema onde eu usaria o HQL e o Critéria e como ficaria o sql acima ?

[/quote]Você faria em cima das Entities e não das tabelas. Lá tem exemplos e aqui tem prática: http://uaihebert.com/?p=1137