Galera, por favor, me ajudem, jah não sei mais o que fazer!!!
A meses tento usar o Hibernate, sigo tudo quanto eh tutorial na net mas naum dá… sempre que executo a aplicação os dados naum são salvos no banco.
Algum problema em especial usando ele com o MySQL(tabelas InnoDB)???
Tipo qnd executo a aplicação ela mostra soh uma mensagem:
“resolvi” esse problema copiando o arquivo log4j.properties do proprio hibernate dentro da minha aplicação, soh que depois disso ele mostra uma msg gigante que eh assim:
Pelo que pude entender por essa msg eh que o erro esta em:
alguma coisa a ver com esse ehcache, mas o q eu não sei. jah andei procurando na net, mas não achei nada.
Por favor, me deem uma luz, jah estou desesperado com isso
Opa, ae galera finalmente consegui…
num tinha nada a ver com o ehcache não, era soh que eu naum tinha usado uma transaction no hora de inserir, agora finalmente deu certo (tow usando o Hibernate 3).
Agora soh uma duvida, notei que eh meio lento a persistencia no banco… isso eh pq o Hibernate eh meio lento mesmo? ou simplemente tow fazendo algo que torne o processo mais lento?
Grato desde jah
O Hibernate mapeia todo os seus objetos quando estânciado pela primeira vez por isso a demora, mas para garantir que ele seja rápido é necessário que vc implemente um pattern Singleton, isso fará que ele seja estanciado apenas uma vez em seu sistema.
Melhor que o singleton, no caso do hibernate, acredito que seja o ThreadLocal. Entra em www.hibernate.org e procura por ThreadLocal e por HibernateUtils, q eh a implementacao de uma classe utilitaria utilizando o conceito de ThreadLocal. Com isso vc nao vai criar uma sessão toda hora q precisar usar (o q torna o codigo lento), vai criar a sessao e deixá-la numa thread separada, e toda vez q precisar, vai usar essa thread. Mas para poder usar varias sessões ao mesmo tempo precisará de um pool, q pode ser configurado no hibernate.properties, ta comentado lá, eh soh dar uma olhada. Recomendo o pool da apache DBCP
O Singleton é um dos patterns, na minha opnião, mais fáceis. Não conheço o outro, mas sei que para implementar o singleton é extremamente rápido.
Quanto a esse ThreadLocal, vc já o usou em alguma outra aplicação Darkseid? Se eu tiver diversas máquinas acessando meu banco não faria com que este fique lento também?
[quote=“RaulCarlin”]O Singleton é um dos patterns, na minha opnião, mais fáceis. Não conheço o outro, mas sei que para implementar o singleton é extremamente rápido.
Quanto a esse ThreadLocal, vc já o usou em alguma outra aplicação Darkseid? Se eu tiver diversas máquinas acessando meu banco não faria com que este fique lento também?[/quote]
Nao faria nao, pq vc faz um pool… o q acontece eh q vc nao vai criar uma sessao toda vez q precisar a usar. Uma vez fiz uma “medição” de desempenho com o hibernate, e criar sessão eh algo muito pesado, ainda mais se tiver com log habilitado. Usando ThreadLocal, vc cria a sessao a primeira vez, e depois vai usando a q ja esta criada. Caso vc precise usar a sessao quando ela estiver sendo usada, ai eh criada outra e colocada no pool…
[quote=“pintowar”]Opa, ae galera finalmente consegui…
num tinha nada a ver com o ehcache não, era soh que eu naum tinha usado uma transaction no hora de inserir, agora finalmente deu certo (tow usando o Hibernate 3).
Agora soh uma duvida, notei que eh meio lento a persistencia no banco… isso eh pq o Hibernate eh meio lento mesmo? ou simplemente tow fazendo algo que torne o processo mais lento?
Grato desde jah :)[/quote]
Amigo! estou exatamente com este seu problema! onde foi q vc colocou esta transaction?