Galera, que negócio que dar muita dor de cabeça heimmmm. Vou desistir do Hibernate, é um saco, voce configura uma coisa depois da problema em outra. Haja paciencia. Sem contar nos tutoriais pela net, mal testados, que em vez de ajudar faz é atrapalhar. Um exemplo é um cara dizer que tem que usar um arquivo properties já o outro diz que não que tem que utilizar um arquivo de configuração hibernate.cfg.xml
Hibernate dar muita dor de cabeça
13 Respostas
Cara, se seu problema for com a sintaxe do hibernate sql sugiro o iBatis.
O hibernate, a princípio, é muito bom pra mapear sistemas desenvolvdios em metodologias OO (realmente OO) mas é meio sacal qdo vc tem de mapear sistemas legados (alguns dizem: orientados à banco). Com o iBatis vc tem total controle do sql criado ('no hibernate, senão me engano, isso só foi possível na versão 3).
Woody
Os tutoriais que eu achei eram muito mal explicados e/ou desatualizados mesmo.
Baixa o 2º capítulo do Java Persistence with Hibernate: http://hibernate.org/152.html
Vê se melhora.
Realmente tem muito tutorial ruim e antigo sobre Hibernate na web.
Acho que a dica do Schuenemann é o melhor caminho mesmo.
Sempre que preciso vou logo pra fonte mais confiável mesmo:
Próprio site do Hibernate
http://www.hibernate.org/
E a área de documentação do próprio
http://www.hibernate.org/5.html
Acho que nunca precisei de outras fontes …
Roger Leite
Sim, o Hibernate vai dar muita dor de cabeça, mas no final ele vale a pena.
A maior causa das dores de cabeça com o hibernate, é culpa de quem usa ele, normalmente sem ler a documentação.
Aposto que você não leu a documentação. E ler a documentação não é ir lá na parte de configuração para ver como se configura. É ler a documentação do inicio, para entender como as coisas funcionam, e ai reduzir justamente as dores de cabeça.
Querer usar o Hibernate lendo apenas alguns tutoriais, está pedindo para se incomodar.
Sim, o Hibernate vai dar muita dor de cabeça, mas no final ele vale a pena.A maior causa das dores de cabeça com o hibernate, é culpa de quem usa ele, normalmente sem ler a documentação.
Aposto que você não leu a documentação. E ler a documentação não é ir lá na parte de configuração para ver como se configura. É ler a documentação do inicio, para entender como as coisas funcionam, e ai reduzir justamente as dores de cabeça.
Querer usar o Hibernate lendo apenas alguns tutoriais, está pedindo para se incomodar.
Só completando Marcelo, a documentação do Hibernate é uma das melhores documentações sobre ferramentas open-source, vale a pena tirar algumas horinhas para dar uma boa lida nela.
Nunca estudei à fundo o hibernate, mas o JPA sim, e já que são coisas semelhantes (um completa o outro e pode precisar do outro), então tá valendo.
É difícil, dizer que é um framework fácil não é, mas também muita coisa se observa apenas com a prática, tive que fazer um sistema peculiar e fora do convencional, e então aprendi muita coisa com esses frameworks, mas concordo, no início gera-se muita dor de cabeça.
Agora, os tuts são muitos ruins e superficiais em sua maioria, é bom começar por um livro, o já citado: Java persistence with Hibernate é muito bom, ele foi o livro que mais lí sobre tal assunto.
:arrow: Algumas dicas:
-
Saiba entender o processo de estado de objeto no hibernate, aprenda o que é e como sua aplicação deve-se comportar nesses estados, como a exemplo do datachead mode, transient, persistence.
-
Faça uma boa classe de abstração para utilizar o hibernate, saiba usar o ThreadLocal para proteger também suas instâncias.
-
Caso esteja utilizando anotações, nunca deixe anotações espalhadas em uma classe de forma aleatória, ou elas ficam na declaração das suas variáveis, ou em seus getters/setters, mas nunca espalhadas, e isso gera um erro bizzaro.
-
Dê preferência apenas à criação de um único listener para utilizar os @Post… e os @Pre… da vida, assim organiza melhor seu código e não emite erros de ficar chamando listener mais de uma vez.
-
O log4j pode ser muito útil, procurando por exemplos na internet, acha-se um fácil que pode ajudar na verbosização.
Depois comento mais, tenho que sair.
Sim, o Hibernate vai dar muita dor de cabeça, mas no final ele vale a pena.A maior causa das dores de cabeça com o hibernate, é culpa de quem usa ele, normalmente sem ler a documentação.
Aposto que você não leu a documentação. E ler a documentação não é ir lá na parte de configuração para ver como se configura. É ler a documentação do inicio, para entender como as coisas funcionam, e ai reduzir justamente as dores de cabeça.
Querer usar o Hibernate lendo apenas alguns tutoriais, está pedindo para se incomodar.
Engraçado,
acho que já vi essa história em algum lugar… :?
Além de tudo isso que o Grivon falou… mais importante ainda é compreender a diferença de impedância que existe nos modelos de objeto e modelo relacional. É preciso compreender como se mapeia um objeto para o banco, suas possibilidades e limitações.
Além de tudo isso que o Grivon falou… mais importante ainda é compreender a diferença de impedância que existe nos modelos de objeto e modelo relacional. É preciso compreender como se mapeia um objeto para o banco, suas possibilidades e limitações.
Concordo em gênero, número e grau. (só não usaria a palavra “impedância”)
nao da dor de cabeça não, pelo contrario.
mas no comeco sempre é assim, lembro q comecei com jdbc puro (nativo), apanhava tambem. Isso é uma questao de estuto e dedicacao. e sobre o properties e o xml!
é o seguinte, vc pode ter os dois, mas o XML irá sobrescrever as propriedades declaradas no properties, isso se vc repetir no XML.
mas o hibernate procura primeiro o properties depois o XML , mas vc deve ter um dos dois para as configuracoes, ou configurar programaticamente.
falow.
ps: se tiver errado me corrija
nao da dor de cabeça não, pelo contrario.
mas no comeco sempre é assim, lembro q comecei com jdbc puro (nativo), apanhava tambem. Isso é uma questao de estuto e dedicacao. e sobre o properties e o xml!
é o seguinte, vc pode ter os dois, mas o XML irá sobrescrever as propriedades declaradas no properties, isso se vc repetir no XML.
mas o hibernate procura primeiro o properties depois o XML , mas vc deve ter um dos dois para as configuracoes, ou configurar programaticamente.
falow.
ps: se tiver errado me corrija
Ta, eu uso e nao tenho nem o properties e nem o xml, eae??!!
Brincadeira, negocio é a doc oficial do site, pq é o seguinte:
1 - Voce pode usar o Hibernate só com o properties!
2 - Voce pode usar o Hibernate só com o hibernate.cfg.xml!
3 - Voce pode usar o Hiberbate sem nenhum dos 2 acima, usando anotations!
4 - Atualmenbte uso ele com JPA annotations, no passado ja usei com xml, fiz loucuras, tipo relacionamento Muitos pra Muitos, com a mesma tabela, e acreditem, fiz o hibernate entender isso!
Concordo com tudo que já citaram. Usar o hibernate simplesmente lendo tutoriais é complicado pq os tutoriais são vagos e mal te ensinam a fazer um processo de inserção de dados de uma maneira clara.
A maioria dos erros que vc encontra no começo, é justamente por seguir os tutorias falho que vc encontra. Se vc puder, de uma olhada por cima no liro Hibernate In Action que ele ajuda ( não é um livro cmoplete, mas ele te oferece alguma base sobre o funcionamento do Hibernate ).
[]'s
nao da dor de cabeça não, pelo contrario.
mas no comeco sempre é assim, lembro q comecei com jdbc puro (nativo), apanhava tambem. Isso é uma questao de estuto e dedicacao. e sobre o properties e o xml!
é o seguinte, vc pode ter os dois, mas o XML irá sobrescrever as propriedades declaradas no properties, isso se vc repetir no XML.
mas o hibernate procura primeiro o properties depois o XML , mas vc deve ter um dos dois para as configuracoes, ou configurar programaticamente.
falow.
ps: se tiver errado me corrijaTa, eu uso e nao tenho nem o properties e nem o xml, eae??!!
Brincadeira, negocio é a doc oficial do site, pq é o seguinte:
1 - Voce pode usar o Hibernate só com o properties!
2 - Voce pode usar o Hibernate só com o hibernate.cfg.xml!
3 - Voce pode usar o Hiberbate sem nenhum dos 2 acima, usando anotations!
4 - Atualmenbte uso ele com JPA annotations, no passado ja usei com xml, fiz loucuras, tipo relacionamento Muitos pra Muitos, com a mesma tabela, e acreditem, fiz o hibernate entender isso!
Vc usa annotations, eu não disse q não usava, disse q o xml sobrescreve o properties, eu combino os dois xml só para configurar.
Mas ah qstao é q hibernate nao é so um framework de geração de sql apenas, ele cuida do estado dos seus objetos
Transient : Objeto em memória porém não foi salvo ainda;
Persistent : Objeto já salvo porém em cache no SessionFactory mas pode ser que ainda não esteja no banco de dados;
Detached : Objeto já persistido no banco de dados;
assim sua logica fica OO e nao procedural. e dor de cabecao é o procedural.