| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/01/2012 11:57:30
|
mausexdd
Virtual Machine Man
![[Avatar]](/images/avatar/76eac68b8d2923713428270133e03d3f.jpg)
Membro desde: 29/10/2010 17:49:43
Mensagens: 505
Localização: Araraquara São Paulo
Offline
|
Estava lendo este artigo do mballem
http://mballem.wordpress.com/2012/01/09/consultas-com-hibernate-e-a-api-criteria-%E2%80%93-parte-i/
sobre criteria , e vi que é muito simples utilizar esta API , que traz vários métodos prontos .
Quando eu estava aprendendo Hibernate , me foi apresentado as HQL como único modo de consultas no BD etc..
E me ficou a duvida , porque não utilizar Criteria ?
perde-se algum beneficio gerido pelo framework utilizando esta API?
Achei o Hibernate mais simples e facil ainda do que ele já é utilizando estes recursos do Criteria.
VLW
|
Oracle Certified Professional Java Programmer
Software Developer in Project Kenai - HP12c Emulator
Studyng for OCWCD (:
ARE YOU LEARNING JSF ? WACTH THIS NOW !
Hibernate/JSF2.0+Primefaces - Web Cast/Video Tutorial
www.Mauricio-Carvalho.Blogspot.com
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/01/2012 12:09:35
|
Tchello
GUJ Master
![[Avatar]](/images/avatar/901db33c84e81b1a30e59949bbcb112b.png)
Membro desde: 07/06/2008 14:41:04
Mensagens: 1695
Offline
|
Pode usar a API Criteria tranquilamente.
Vejo sendo largamente utilizada em projetos, embora em situações mais complexas eu prefira usar HQL por me sentir mais produtivo nesses cenários.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/01/2012 12:20:25
|
filipechaves
JavaChild
Membro desde: 26/09/2008 08:19:29
Mensagens: 128
Offline
|
Na teoria, se consegue os mesmos resultados utilizando HQL ou criteria. O que acontece, na minha opinião, é que a "familiaridade" entre o HQL e o SQL o torna mais "confortável" e "intuitivo" para o uso, por que não há como negar que o criteria é uma quebra de paradigma e, na maioria dos casos, não é intuitivo.
|
Forte, Aguerrido e Bravo!
NHRC
www.nhrc.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/01/2012 12:48:43
|
mausexdd
Virtual Machine Man
![[Avatar]](/images/avatar/76eac68b8d2923713428270133e03d3f.jpg)
Membro desde: 29/10/2010 17:49:43
Mensagens: 505
Localização: Araraquara São Paulo
Offline
|
Outra coisa , eu sempre declarei minhas HQL dentro das classes modelo , sempre me perguntei se não seria melhor passar a HQL direto no método no DAO .
|
Oracle Certified Professional Java Programmer
Software Developer in Project Kenai - HP12c Emulator
Studyng for OCWCD (:
ARE YOU LEARNING JSF ? WACTH THIS NOW !
Hibernate/JSF2.0+Primefaces - Web Cast/Video Tutorial
www.Mauricio-Carvalho.Blogspot.com
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/01/2012 12:51:55
|
filipechaves
JavaChild
Membro desde: 26/09/2008 08:19:29
Mensagens: 128
Offline
|
mausexdd wrote:Outra coisa , eu sempre declarei minhas HQL dentro das classes modelo , sempre me perguntei se não seria melhor passar a HQL direto no método no DAO .
qual modelo? não entendi.
|
Forte, Aguerrido e Bravo!
NHRC
www.nhrc.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/01/2012 12:59:12
|
rafael_souza0
Thread.start()
![[Avatar]](/images/avatar/b5c4c3591e9871a577978ee508b8a8b0.jpg)
Membro desde: 19/09/2011 20:19:21
Mensagens: 32
Localização: São Paulo
Offline
|
Eu prefiro usar Criteria somente em consultas realmente avançadas, em que precise fazer diversos joins.
Criteria é bem mais facil de usar, mas na maioria das vezes, prefiro usar HQL pq acho mais confiável. Já tive alguns problemas de retornos estranhos usando a Criteria.
|
Oracle Certified Professional, Java SE 6 Programmer
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/01/2012 13:18:23
|
filipechaves
JavaChild
Membro desde: 26/09/2008 08:19:29
Mensagens: 128
Offline
|
filipechaves wrote:
mausexdd wrote:Outra coisa , eu sempre declarei minhas HQL dentro das classes modelo , sempre me perguntei se não seria melhor passar a HQL direto no método no DAO .
qual modelo? não entendi.
agora acho que entendi, seria camada model do MVC ?
pense assim, se tu precisar achar o local que faz a query, qual seria primeira classe que tu procuraria?
geralmente todo código de interação com o banco é escrito no DAO.
|
Forte, Aguerrido e Bravo!
NHRC
www.nhrc.com.br |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/01/2012 13:20:04
|
mausexdd
Virtual Machine Man
![[Avatar]](/images/avatar/76eac68b8d2923713428270133e03d3f.jpg)
Membro desde: 29/10/2010 17:49:43
Mensagens: 505
Localização: Araraquara São Paulo
Offline
|
agora acho que entendi, seria camada model do MVC ?
pense assim, se tu precisar achar o local que faz a query, qual seria primeira classe que tu procuraria?
geralmente todo código de interação com o banco é escrito no DAO.
É então , é realmente isso que pensei , porem meu professor disse que nao era elegante passar a HQL direto como parametro no metodo que vai realizar a função no BD , e sim passar somente o nome da HQL
|
Oracle Certified Professional Java Programmer
Software Developer in Project Kenai - HP12c Emulator
Studyng for OCWCD (:
ARE YOU LEARNING JSF ? WACTH THIS NOW !
Hibernate/JSF2.0+Primefaces - Web Cast/Video Tutorial
www.Mauricio-Carvalho.Blogspot.com
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/01/2012 13:21:33
|
Tchello
GUJ Master
![[Avatar]](/images/avatar/901db33c84e81b1a30e59949bbcb112b.png)
Membro desde: 07/06/2008 14:41:04
Mensagens: 1695
Offline
|
mausexdd wrote:
agora acho que entendi, seria camada model do MVC ?
pense assim, se tu precisar achar o local que faz a query, qual seria primeira classe que tu procuraria?
geralmente todo código de interação com o banco é escrito no DAO.
É então , é realmente isso que pensei , porem meu professor disse que nao era elegante passar a HQL direto como parametro no metodo que vai realizar a função no BD , e sim passar somente o nome da HQL
De uma olhada em NamedQueries.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/01/2012 13:23:23
|
mausexdd
Virtual Machine Man
![[Avatar]](/images/avatar/76eac68b8d2923713428270133e03d3f.jpg)
Membro desde: 29/10/2010 17:49:43
Mensagens: 505
Localização: Araraquara São Paulo
Offline
|
Então eu passava apenas o NamedQueri para a classe DAO , acho que não fui muito especifico , o caso é que ao invés de declarar minhas HQL na classe PessoaDAO por exemplo , ele falava para declarar na classe Pessoa , e chamar pelo NamedQuerie dentro do método nas classes de Persistencia (DAO).
This message was edited 1 time. Last update was at 24/01/2012 13:27:29
|
Oracle Certified Professional Java Programmer
Software Developer in Project Kenai - HP12c Emulator
Studyng for OCWCD (:
ARE YOU LEARNING JSF ? WACTH THIS NOW !
Hibernate/JSF2.0+Primefaces - Web Cast/Video Tutorial
www.Mauricio-Carvalho.Blogspot.com
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/01/2012 13:29:37
|
Tchello
GUJ Master
![[Avatar]](/images/avatar/901db33c84e81b1a30e59949bbcb112b.png)
Membro desde: 07/06/2008 14:41:04
Mensagens: 1695
Offline
|
mausexdd wrote:Então eu passava apenas o NamedQueri para a classe DAO , acho que não fui muito especifico , o caso é que ao invés de declarar minhas HQL na classe PessoaDAO por exemplo , ele falava para declarar na classe Pessoa , e chamar pelo NamedQuerie dentro do método nas classes de Persistencia (DAO).
Exato, quem deve saber a Query ou (nesse caso) a NamedQuery é o DAO, que por sua vez está declarada na entidade correspondente.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/01/2012 14:42:42
|
renanreismartins
GUJ Ranger
![[Avatar]](/images/avatar/b43a306ca1e27299a57727ff5c0d4998.jpg)
Membro desde: 19/09/2007 15:19:38
Mensagens: 807
Localização: São Paulo - SP
Offline
|
concordo com o Tchello que hql parece mais produtivo em algumas vezes.
porém acho criteria mais vantajoso quando temos que montar uma query dinamicamente. Com ela podemos evitar concatenaçao e repetição de if.
abrasssss
|
http://renanreismartins.blogspot.com/ - Para apaixonados por desenvolvimento de software |
|
|
 |
|
|