3.2.2.2. Configuração das Alterações para os Aplicativos que Utilizam Hibernate e JPA
Se o seu aplicativo possui um arquivo persistence.xml ou o código utiliza as anotações @PersistenceContext ou @PersistenceUnit, o JBoss EAP 6 detectará isto durante a implantação e considerará que o aplicativo está usando JPA. Ele adiciona implicitamente o Hibernate 4, mais algumas outras dependências, ao caminho de classe do seu aplicativo.
ClassNotFoundExceptions quando estiver implantando seu aplicativo, pode ser possível resolver esse problema usando uma das seguintes abordagens.
Importante
Procedimento 3.13. Configuração do Aplicativo
Copie os JARs necessários do Hibernate 3 para a biblioteca do seu aplicativo.
Você pode conseguir resolver o problema copiando os JARs específicos do Hibernate 3 que contêm as classes faltantes no diretóriolib/do aplicativo ou adicionando-os ao caminho de classe usando algum outro método. Em alguns casos, isto pode resultar emClassCastExceptionsou em outros problemas de carregamento de classe devido ao uso misto das versões Hibernate. Caso isto aconteça, você precisará usar a próxima abordagem.Instrua o servidor para usar apenas as bibliotecas do Hibernate 3.
O JBoss EAP 6 permite que você empacote os jars do provedor de persistência Hibernate 3.5 (ou posterior) com o aplicativo. Para direcionar o servidor para o uso apenas das bibliotecas do Hibernate 3 e excluir as bibliotecas do Hibernate 4, você precisa determinarjboss.as.jpa.providerModulecomohibernate3-bundlednopersistence.xml, conforme a seguir:O implantador Java Persistence API (JPA) detectará a presença de um provedor de persistência no aplicativo e usará as bibliotecas do Hibernate 3. Consulte Seção 3.2.2.3, “Propriedades da Unidade de Persistência” para mais informações sobre as propriedades de persistência JPA.<?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0"> <persistence-unit name="plannerdatasource_pu"> <description>Hibernate 3 Persistence Unit.</description> <jta-data-source>java:jboss/datasources/PlannerDS</jta-data-source> <properties> <property name="hibernate.show_sql" value="false" /> <property name="jboss.as.jpa.providerModule" value="hibernate3-bundled" /> </properties> </persistence-unit> </persistence>Desabilite o cache de segundo nível do Hibernate
O cache de segundo nível para o Hibernate 3 não exibe o mesmo comportamento com o JBoss EAP 6, como fazia nas versões anteriores. Caso você esteja usando o cache de segundo nível do Hibernate com o seu aplicativo, você deve desativá-lo até que ele seja atualizado para o Hibernate 4. Para desativar o cache de segundo nível, configure o<hibernate.cache.use_second_level_cache>comofalseno arquivopersistence.xml.