| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/01/2012 09:42:02
|
josenaldo
GUJ Master
![[Avatar]](/images/avatar/986ad3ada4d93c1c474674751f941082.png)
Membro desde: 27/11/2006 12:39:28
Mensagens: 1170
Localização: Uberlândia/MG
Offline
|
Uma maneira bem certeira de você entender o porque usar o Hibernate é passar pelo probema de não usá-lo: use JDBC.
Sério. Faça um projeto razoável, que te tome uns 3 meses ou mais, só com JDBC.
No começo, você não vê muita diferença, mas depois de fazer o 10º DAO e ver que está repetindo tanto código, vai entender o valor de um DAO Generico
Depois de se ver brigando para fazer o mínimo gerenciamento de transação, vai entender o valor do gernciamento de transação do Hibernate
Depois de se ver desesperado para fazer buscas que retornam um objeto apenas e outra igual que retornam toda a árvore de objetos a partir deste e mais outra pra retornar só um outro objeto do agregado, vai entender pra que serve o Lazy Loading
Depois de repetir pela milésima vez uma consulta super simples, vai entender como bom ter métodos básicos de consulta prontos
Depois de brigar pra fazer consultas dinâmicas e ver seu código virar um horror, vai ver como é bom usar Criteria
Depois de perceber o tamanho do trambolho que fica cada método simples de CRUD, vai ver a beleza de fazer um CRUD no hibernate com um código simples, consiso e enxuto
Depois de perder muito tempo pra conseguir fazer muito pouco, vai ver como é bom ter produtividade.
Isso só de começo.
E quanto ao SQL, aprenda. Mesmo com Hibernate, SQL também é importante. E uma consulta nativa sempre salva o dia quando nada mais ajuda.
|
Josenaldo de Oliveira Matos Filho
UAIJUG - http://www.uaijug.com.br
http:jnaldo.com |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/01/2012 17:14:41
|
Luiz Augusto Prado
JavaEvangelist
![[Avatar]](/images/avatar/3d1c8c0a9b95a18b60e7cbdbeea7741f.jpeg)
Membro desde: 20/02/2008 23:02:08
Mensagens: 430
Localização: Brasília
Offline
|
Grinvon wrote:Você está certo em querer estudar SQL. Afinal, querendo ou não, essa é a linguagem dos bancos de dados.
A questão do Hibernate/JPA é integrar o banco de dados à aplicação de forma transparente, com orientação à objetos e de forma mais prática. Uma das coisas chatas de usar JDBC puro é a questão dos bindings das tabelas, o excesso de queries que terá que criar para cada tabela, a possibilidade de falhas de sintaxe ou lógica de linguagem SQL também são aumentadas, mas mesmo assim, há casos que não dá para fugir do JDBC, a exemplo recursos de bulking update e batch.
Isso realmente ocorre. Por isso a necessidade de um fw como JPA/Hibernate.
vc tem algumas copções como JPQL ou Criteria. A que menos lhe causará erros é a Criteria. Mas veja esse exemplo:
Vc ainda pode escrever "price" errado.
josenaldo wrote:Uma maneira bem certeira de você entender o porque usar o Hibernate é passar pelo probema de não usá-lo: use JDBC.
Sério. Faça um projeto razoável, que te tome uns 3 meses ou mais, só com JDBC.
No começo, você não vê muita diferença, mas depois de fazer o 10º DAO e ver que está repetindo tanto código, vai entender o valor de um DAO Genérico
Depois de se ver brigando para fazer o mínimo gerenciamento de transação, vai entender o valor do gernciamento de transação do Hibernate
Depois de se ver desesperado para fazer buscas que retornam um objeto apenas e outra igual que retornam toda a árvore de objetos a partir deste e mais outra pra retornar só um outro objeto do agregado, vai entender pra que serve o Lazy Loading
Depois de repetir pela milésima vez uma consulta super simples, vai entender como bom ter métodos básicos de consulta prontos
Depois de brigar pra fazer consultas dinâmicas e ver seu código virar um horror, vai ver como é bom usar Criteria
Depois de perceber o tamanho do trambolho que fica cada método simples de CRUD, vai ver a beleza de fazer um CRUD no hibernate com um código simples, consiso e enxuto
Depois de perder muito tempo pra conseguir fazer muito pouco, vai ver como é bom ter produtividade.
Isso só de começo.
E quanto ao SQL, aprenda. Mesmo com Hibernate, SQL também é importante. E uma consulta nativa sempre salva o dia quando nada mais ajuda.
A sugestão do josenaldo é muito boa.
O cara tem que começar caminhando descalço pra depois conhecer o valor do chinelo.
Acho que em programação vc não é obrigado a utilizar nenhuma ferramenta, mas é interessante pesar no que vc pode fazer com e sem ela.
O controle do FetchType é uma das coisas mais interessantes do JPA e do Hibernate.
Eu tenho trabalhado com um ORM que eu mesmo estou desenvolvendo.
Claro que ainda é bem modesto se comparado com um iBATIS, mas estou melhorando aos poucos:
http://www.guj.com.br/java/255094-hibernate-e-jpa-por-que
Ainda não tive tempo (e idéia concreta) para implementar algo como um FetchType e seu controle.
O controle do FetchType é realmente uma mão na roda.
This message was edited 2 times. Last update was at 29/01/2012 17:16:25
|
Alfabetizador Orelha: http://www.codigorapido.com.br/alfa/palcosalfa.html
Meu ORM em java: http://www.guj.com.br/java/257619-meu-pequeno-orm-em-java-inspirado-no-linq-to-sql
Blog: http://ideiasdeprogramacao.blogspot.com/
Geometria Euclidiana Plana com cálculo proposicional
"Onde não ha verdade não ha sociedade." (Luiz Augusto Prado)
Evite o mal, faça o bem e cultive a mente
Atos 2:44-46
VEJAM ISSO!!!
Vídeo censurado no Brasil |
|
|
 |
|
|
|
|