Ainda nao consegui entender qual o "grande lance" do Hibernate  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
josenaldo
GUJ Master
[Avatar]

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
[Email] [WWW] [MSN]
Luiz Augusto Prado
JavaEvangelist
[Avatar]

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
[Email] [WWW]
 
Índice dos Fóruns » Assuntos gerais (Off-topic)
Ir para:   
Powered by JForum 2.1.8 © JForum Team