As dependências do Hibernate 3.5 e 3.6

O primeiro desafio de um iniciante em Hibernate, antes mesmo de fazer um tutorial prático, como o disponível na apostila FJ-21 da Caelum, é organizar as dependências necessárias. Até o Hibernate 3.3, a maneira a qual ele era distribuído dava trabalho pra quem precisasse usar a JPA: além do zip contendo o hibernate, era necessário fazer o download de um outro jar contendo a implementação do EntityManager e ainda outro contendo as anotações e interfaces da JPA.

A versão 3.5, como a 3.6, além de trazer uma implementação da JPA2, juntou todos esses pacotes em um só. A documentação está ainda mais completa, assim como a parte explicando o processo de setup do seu primeiro projeto. Apesar disso, como se pode ler na documentação, ela é feita assumindo que você esteja usando o maven. Muitos iniciantes em Java ainda tem dificuldades pra encarar o Maven, ou há ainda quem prefira usar o Ant, Ivy ou gerenciar as dependências manualmente. Quais dependências preciso então para rodar uma aplicação com Hibernate 3.5/3.6?

Para facilitar seu trabalho, deixamos aqui um zip com todas essas dependências do Hibernate 3.5.0, além de um arquivo de configuração para o Log4J, um hibernate.cfg.xml e jars opcionais. O arquivo do Hibernate antigo não é mais recomendado. Melhor seguir o passo a passo e obter o Hibernate mais novo.

Ou então você pode juntar esses jars seguindo o passo a passo: primeiramente precisa baixar a distribuição 3.5/3.6 a partir da página de downloads do hibernate no sourceforge. Ao descompactá-la, encontramos os seguintes arquivos e diretórios:

O hibernate3.jar é um jar contendo as classes fundamentais do Hibernate. Agora, dentro de lib, temos o diretório required, que são dependências que sempre precisaremos utilizar junto com o Hibernate. Todas essas 6 dependências são necessárias:

Dentro de lib, ainda precisamos do jar hibernate-jpa-2.0-api-1.0.0.Final.jar que está na pasta jpa para poder utilizar as anotações do Java EE. Caso você va usar o MySQL, também precisa fazer o download do driver JDBC para ele.

Ainda não terminou. Precisamos do nosso logging funcionando. Se você tentar executar algum exemplo agora, vai receber o conhecido Exception in thread “main” java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder. O SL4J, usado pelo Hibernate, é uma casca para as outras ferramentas de logging, e precisa então de um jar que indique qual logger será utilizado como backend. Na página de distribuições do SL4J você deve baixar a versão correspondente que está usando, seria a 1.5.8 no caso do Hibernate 3.5.0, e pegar o adaptador slf4j-log4j12-1.5.8.jar. Para o Hibernate 3.6.2, é necessário o slf4j-log4j12-1.6.1.jar. Também precisamos do jar do Log4J 1.2.x.

Principais dependências opcionais

Usar o Hibernate facilita muito o desenvolvimento com banco de dados, porém para uma performance e escalabilidade adequada é necessário ficar atento em alguns pontos fundamentais, e também simples, para que ele não se torne um gargalo na sua aplicação. Dentro do diretório optional, destaco como essenciais o c3p0 para pool de conexão e o ehcache para second level cache. O ehcache necessitará do commons-logging por sua vez.

Para você tirar todo o poder da JPA 2, vai querer também usar a api de meta modelos, e pra isso precisa do gerador de modelos do Hibernate.

40 Comentários

  1. Danilo 14/04/2010 at 20:08 #

    O Edson Gonçalves vem fazendo um trabalho em ensinar a JPA já incluindo a versão 2.0 em seu blog, ao qual fez um post ensinando sobre a utilização do Hibernate 3.5 antes da versão final. Caso alguém esteja iniciando, recomendo:
    http://www.edsongoncalves.com.br/category/jpa-2-0/

  2. Paulo Silveira 17/04/2010 at 01:29 #

    @danilo excelente link!

    @Fagner todos o providers de second level cache do hibernate são ótimos. não excluo nenhum. Sempre tive excelentes resultados com ehcache, e o jar dele já vem com o hibernate. Quando precisamos de um cache maior e distribuído, ai não tem como fugir do JBoss Cache, Infinispan, ou ainda memcached “na mao” ou do antiquissimo SwarmCache pra quem lembra.

  3. Garcia 18/04/2010 at 17:25 #

    O suporte a Infinispan foi uma das melhores features do H3.5, embora o JBoss Cache sempre me atendeu muito bem para caches distrubuídos.

    Paulo, na sua segunda imagem está faltando o DOM4J, que infelizmente é uma dependência necessária, mesmo que você não use os infames HBMs.

    E complementando, se você está usando um appserver que suporte JEE6 vocẽ não precisará do hibernate-jpa-2.0-api.

    Porém é uma pena você engessar o post no LOG4J, já que o SLF4J permite que você use outras implementações de logging.

  4. Paulo Silveira 18/04/2010 at 17:43 #

    @Garcia

    Verdade, o DOM4J é obrigatório, mas não entendi seu comentário. Ele está sim lá na pasta required e é o 3o icone que você pode ver na imagem. Ele também está no zip que disponibilizei.

    Verdade também sobre a API da JPA, mas nesse caso ele não vai precisar de nenhum jar do Hibernate, já que se for pra usar JPA2 num container Java EE6 ele é obrigado a vir com uma implementação (exemplo, no JBoss você não precisa de nenhum dos jars que citei aqui)! Lembrando que esse post é pra quem está começando com Hibernate standalone.

    Não quero engessar não! Tanto o Log4J, Ehcache e o C3P0 tem suas alternativas. Aqui é apenas uma sugestão pra quem está começando. Quanto ao Log4J, é uma pena até agora ele não tenha suporte a java 5. Sem varargs gera um problema grande de early evaluation da mensagem de log e criando aquele idiomistmo de if (log.isDebugEnable())

  5. Garcia 18/04/2010 at 17:54 #

    Paulo, é verdade, acho que eu olhei um pouco rápido e não notei o jar alí. My bad, sorry. Olhei correndo e me confundo mesmo.

    Abraços

  6. Rafael Carneiro 18/04/2010 at 20:58 #

    Parabéns por mais um excelente post!

    Eu e o Paulo Sobreira elaboramos um hibernate-blank e disponibilizamos no endereço http://code.google.com/p/hibernate-blank/

    Mais uma fonte para aprendizado.

  7. Mauricio 28/04/2010 at 15:51 #

    Parabéns pelo tutorial, muito didático e me ajudou bastante. Tive apenas um problema: mesmo importando a lib do c3p0 e configurando os parâmetros dele no hibernate.cfg.xml, continuo tendo a saída no console de:

    INFO DriverManagerConnectionProvider:64 – Using Hibernate built-in connection pool (not for production use!)

    Meu hibernate.cfg.xml está assim:

    property name=”hibernate.c3p0.acquire_increment” 2
    property name=”hibernate.c3p0.idle_teste_period”100
    property name=”hibernate.c3p0.max_size”20
    property name=”hibernate.c3p0.min_size”5
    property name=”hibernate.c3p0.max_statements”5
    property name=”hibernate.c3p0.timeout”100

    Imagino que como no hibernate 3.2.x, apenas configurar estes parâmetros já é o suficiente para desligar o gerente de pool de conexões do hibernate, fazendo com que ele passe a usar o c3p0. Faltou alguma coisa??? No 3.5 agora é diferente?

    Abraços.

  8. Mauricio 29/04/2010 at 07:52 #

    Engraçado! Quando mudo as configurações do log4j para as classes do hibernate para debug, a saida do console do meu eclipse indica que ele esta usando o c3p0. Mas quando mudo para info, aparece a famigerada:


    INFO DriverManagerConnectionProvider:64 – Using Hibernate built-in connection pool (not for production use!)

  9. Paulo Silveira 29/04/2010 at 08:32 #

    oi mauricio! a partir do 3.3 precisa disso: property name=”hibernate.connection.provider_class” org.hibernate.connection.C3P0ConnectionProvider

  10. Mauricio 30/04/2010 at 14:41 #

    Olá Paulo, valeu, agora está tudo certo, o c3p0 assumiu a gerência do pool. Só que neste caso tem um furo no manual do que vem na versao 3.5.1, na página 37, logo depois de malhar o algoritmo de pool do Hibernate, ele recomendo o uso de um pool de terceiros, sugere o c3p0 e diz que para ativar o org.hibernate.connection.C3P0ConnectionProvider basta configurar as propriedades hibernate.c3p0.*. Era aí que eu estava vendido:) Valeu pela ajuda mais uma vez, resolveu direitinho meu problema.

  11. Luiz Henrique 06/05/2010 at 22:48 #

    galera valeu mesmo eu tinha perdido os meu jar.

    outra coisa quando eu terminei o curso orientados objetos da caelum
    eu peguei todos e do fj21 tbm….. alguem ainda tem essas pasta da caelum
    para poder passar

    agradeço desde já……
    abração galera

  12. Robson 19/05/2010 at 12:05 #

    Show de bola esse post! Ajudou pra caramba! Os caras do hibernate tem que colocar isso lá viu. Parabéns!

  13. Celso Romão 07/07/2010 at 18:36 #

    Pessoal configurei o hibernate com as libs acima, quando executo aplicação pelo um método main, a aplicação funciona executo algumas consultas na base de Dados(MySQL).
    O problema é que quando tento usar o HIbernate com estes jar no JBoss 5.1, ele dá erro quando lê o hibernate.config.xml.
    Estou tentando configurar uma aplicação JSF(Richfaces) e HIbernate.
    Alguém sabe quais libs que preciso?

  14. Paulo Silveira 08/07/2010 at 01:11 #

    Qual erro ele da Celso?

    Usando o jboss, voce nao deveria colocar essas libs, ja que o container ejb ja as contem e pode dar problema de jar hell

  15. Washington Machado 08/07/2010 at 17:01 #

    O Paulo comentou sobre não precisar dessas libs caso utilize jboss…mas isso ocorre porque o jboss utiliza o hibernate como implementação da jpa?

    E se for utilizar TomCat ou Glassfish? Também não preciso das libs?

    Sou iniciante…se as questões não fizerem sentido desconsiderem…obrigado.

    []s

  16. Paulo Silveira 09/07/2010 at 12:49 #

    Ola Washington. A pergunta faz muito sentido: se voce usa Tomcat, precisará dos jars aqui. Se você usa um container Java EE completo, como o glassfish e o jboss, não precisa, e nem deve colocar esses jars.

  17. Luciano 08/03/2011 at 10:29 #

    Desculpe ressucitar o tópico mas quais seriam as dependências para o hibernate 3.6.0?

  18. jabi 02/04/2011 at 21:36 #

    Deculpe-me mais alguém poderia me ajudar estou tendo dificuldades para migrar pra versão 3.6 quais seria a versão correta do hibernate-annotations…

  19. Levy 28/06/2011 at 08:16 #

    Eu estou começando a usar o maven e antes do mesmo importava esses jars na unha, alguém poderia conferir se esta ok?

    https://gist.github.com/1050921

    Utilizei as mesmas versões dos jars do post.
    Obrigado desde já.

  20. Paulo Henrique - PH 26/07/2011 at 09:23 #

    Paulo,

    Os pacotes atuais do Hibernate não vêm mais com o ehcache.

    Mas o que eu estou com dúvida mesmo é como utilizar o Hibernate com o Cache e o pool de conexões.

    Se eu “disser” no hibernate.cfg que vou utilizar o C3P0 e o oscache, por exemplo, é bastante para que o Hibernate passe a fazer cache de segundo nível e utilizar o pool de conexões?

    A pergunta é se existem configurações default caso eu não tenha determinado outras explicitamente. Ou se existe a exigência de configurações adicionais para utilizar essas ferramentas (C3P0 e oscache) além de citá-las no hibernate.cfg.

    Thx,
    PH

  21. Paulo Silveira 26/07/2011 at 12:15 #

    Oi Paulo!

    No OSCache com certeza vai faltar configuracoes, como anotar quais entidades voce precisa de cache com @Cache, quais queries voce quer cachear com setCacheable(true), etc.

    No C3P0, nao sei se já ha defaults para min, max, test_idle_connection, test_on_burrow, etc, mas é bom voce deixar explicito mesmo se houver.

  22. Paulo Henrique 26/07/2011 at 16:15 #

    Paulo,

    Está ocorrendo uma exceção que acredito ser por causa do C3p0, mas não tenho certeza!

    Você sabe o pq dessa exceção?

    *****

    org.hibernate.HibernateException: ‘hibernate.dialect’ must be set when no Connection available
    at org.hibernate.dialect.resolver.DialectFactory.buildDialect(DialectFactory.java:106)
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:152)
    at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2863)
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2859)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1870)
    at br.inf.bluestar.dao.conexao.HibernateUtil.(HibernateUtil.java:26)
    at br.inf.bluestar.dao.AbstractDAO.(AbstractDAO.java:28)
    at br.inf.bluestar.dao.UsuarioDAO.(UsuarioDAO.java:16)
    at br.inf.bluestar.negocio.UsuarioNegocio.efetuarLogin(UsuarioNegocio.java:11)
    at br.inf.bluestar.action.UsuarioAction.efetuarLogin(UsuarioAction.java:39)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:270)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:498)
    at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

    *****

    Meu arquivo de configuração do Hibernate está assim:

    oracle.jdbc.pool.OracleDataSource
    jdbc:oracle:thin:@192.168.72.128:1521/xe
    <!– jdbc:oracle:thin:@localhost:1521/xe –>
    uniblue
    uniblue
    true
    org.hibernate.dialect.OracleDialect


    <!– create –>

    org.hibernate.connection.C3P0ConnectionProvider

    1
    100
    100
    0
    10
    100


    true
    true

    org.hibernate.cache.EhCacheProvider

    <!– –>

    <!– –>

    Alguma dica para solucionar esse problema???

  23. Paulo Silveira 26/07/2011 at 16:20 #

    ta faltando configurar a propriedade hibernate.dialect. seu arquivo nao aparece direito por causa dos sinais de xml/html. coloca ele num http://pastebin.com/ pra gente ver

  24. Paulo Henrique - PH 26/07/2011 at 17:01 #

    Eu já tentei com e sem o dialeto mas nada:

    http://pastebin.com/nF7Gcuyg

    A maioria das linhas que estão comentadas eu testei com e sem o comentário!

    Estou louco por uma solução!

  25. Paulo Silveira 26/07/2011 at 17:14 #

    Esta tudo certo, entao eu apostaria que o erro é o classpath. Onde voce colocou o arquivo? Ele precisa estar no seu WEB-INF/classes, na raiz, por exemplo.

  26. Paulo Henrique - PH 26/07/2011 at 17:21 #

    Ele estava dentro do src, como na apostila da Caelum 🙂

    Coloquei na pasta que você falou acima e vou testar!

    Thx!

  27. Paulo Silveira 26/07/2011 at 17:25 #

    se esta no src, deveria funcionar (se voce utilizar eclipse e o arquivo esta sendo copiando para o /web-inf/classes).

  28. Paulo Henrique - PH 26/07/2011 at 17:29 #

    Paulo, não tenho como agradecer o tempo que você gastou quebrando a cabeça comigo!

    Muito obrigado!

    Colocando o arquivo dentro do WEB-INF/classes funcionou.

    Aqui no meu eclipse o arquivo apareceu, além da pasta citada, dentro de Java Resources e não do src (Que fica dentro do Java Resources).

    Ainda não parei para analisar essa organização do Eclipse, mas pareceu ter diferença!

    Dei uma limpada no .cfg e vou testar agora com as outras configurações.

    Mais uma vez, muito obrigado!

  29. Paulo Henrique - PH 26/07/2011 at 17:53 #

    Só mais uma observação, com o ehcache tenho uma exceção lançada na hora que configuro o Hibernate!

    Já com o oscache ele está configurando perfeitamente.

    Baixei todas as bibliotecas recentemente logo estou com as últimas versões.

    Estou com um mal pressentimento por não ter achado a biblioteca do ehcache nas libs que vieram com a última versão do Hibernate e essa exceção que está sendo lançada quando tento utiliza-la.

    É um class not found de uma classe edu.emory.mathcs.backport.java.util.concurrent.BlockingQueue

    Sabem o porquê dessa exceção?

  30. Paulo Henrique - PH 26/07/2011 at 18:06 #

    Prometo que é o último post! 🙂

    Com o EhCache core 2.4.3 funcionou!!!

  31. Leandro 20/10/2011 at 16:35 #

    Boa tarde. Existe uma maneira de juntar 2 projetos ORM em java(Eclipse Helios) em um só, sem alterar nenhum dos projetos, apenas utilizando os métodos? Exemplo, proj1 orm banco 1, proj 2 orm banco 2, proj 3 busca dados em proj 1 e em proj 2. Erro: org.hibernate.MappingException: Unknown entity: pkt.Classe. Hibernate só esta reconhecendo as classes de um dos projetos e não dos dois aos mesmo tempo. Obrigado.

  32. Marcius 08/12/2011 at 20:19 #

    Como configuro o Hibernate Validator com o H 3.6.8?? As anotations ,org.hibernate.validator.NotEmpty por exemplo, não existem mais. 🙁 Tem como eu continuar usando essas anottations no H3.6.8-Final?

  33. Diogo 21/09/2012 at 20:44 #

    O link para o download do arquivo .zip preparado pela caelum do hibernate está fora do ar.

  34. fandrefh 13/10/2012 at 22:43 #

    Sei que já faz dias esse post, mas fiquei interessado no zip que foi disponibilizado contendo todas a dependências pois ainda não consigo usar o maven e sinceramente, uma das dificuldades realmente é montar um conjunto de bibliotecas pois na maioria da vezes é preciso sair fazendo download delas em sites diferentes, garimpando mesmo as bibliotecas…

    O link do zip está quebrado, não existe mais??!!!

  35. Edu 19/08/2017 at 02:51 #

    Sou Iniciante como faça para resolver esse problema, já procurei mas não consigo corrigir¹

    C:\Users\Eduardo\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:4: Unexpected element “{}hibernate-configuration” {antlib:org.apache.tools.ant}hibernate-configuration

Deixe uma resposta