• Nenhum resultado encontrado

Configuração do Aplicativo

No documento JBoss Enterprise Application Platform 6.4 (páginas 47-50)

1. 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ório lib/ do aplicativo ou adicionando-os ao caminho de classe usando algum outro método. Em alguns casos, isto pode resultar em

ClassCastExceptions ou 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. 2. 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 determinar

jboss.as.jpa.providerModule como hibernate3-bundled no persistence.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. 3. 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> como false no arquivo

persistence.xml. Reportar um erro

3.2.2.3. Propriedades da Unidade de Persistência

<?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>

Propriedades de Configuração do Hibernate 4.x

O JBoss EAP 6 automaticamente define as seguintes propriedades de configuração do Hibernate 4.x:

Tabela 3.4. Propriedades da Unidade de Persistência do Hibernate Nome da

Propriedade

Valor Padrão Propósito

hibernate.id .new_generat or_mappings

verdadeiro Esta configuração é relevante caso esteja usando

@GeneratedValue(AUTO) para gerar valores de chave de índice únicos para novas entidades. Os novos aplicativos devem manter o valor padrão true. Os aplicativos existentes que usavam Hibernate 3.3.x podem precisar alterá-lo para false para continuarem usando um objeto de sequência ou um gerador baseado em tabelas e manterem a compatibilidade com versões anteriores. O aplicativo pode substituir esse valor no arquivo persistence.xml.

Mais informações sobre este comportamento são fornecidas abaixo. hibernate.tr ansaction.jt a.platform Instância de Interface org.hibernat e.service.jt a.platform.s pi.JtaPlatfo rm

Esta classe passa o gerenciador de transação, a transação do usuário e o registro de sincronização da transação no Hibernate.

hibernate.ej b.resource_s canner Instância da Interface org.hibernat e.ejb.packag ing.Scanner

Essa classe sabe como utilizar o indexador de anotação do JBoss EAP 6 para fornecer uma implantação mais rápida.

hibernate.tr ansaction.ma nager_lookup _class

Essa propriedade é removida se encontrada no persistence.xml, já que pode entrar em conflito com

hibernate.transaction.jta.platform hibernate.se ssion_factor y_name QUALIFIED_PERS ISTENCE_UNIT_N AME

Configurado como o nome do aplicativo + o nome da unidade de persistência. O aplicativo pode especificar um valor diferente, mas ele deve ser único por todas as implantações do aplicativo na instância do JBoss EAP 6.

hibernate.se ssion_factor y_name_is_jn di

falso Configurado somente se o aplicativo não tiver especificado um valor para hibernate.session_factory_name.

hibernate.ej b.entitymana ger_factory_ name QUALIFIED_PERS ISTENCE_UNIT_N AME

Configurado como o nome do aplicativo + o nome da unidade da persistência. O aplicativo pode especificar um valor diferente, mas ele deve ser único por todas as implantações do aplicativo na instância do JBoss EAP 6.

No Hibernate 4.x, caso new_generator_mappings esteja configurado como true:

@GeneratedValue(AUTO) mapeia para

org.hibernate.id.enhanced.SequenceStyleGenerator.

@GeneratedValue(TABLE) mapeia para

org.hibernate.id.enhanced.TableGenerator.

@GeneratedValue(SEQUENCE) mapeia para

org.hibernate.id.enhanced.SequenceStyleGenerator.

No Hibernate 4.x, caso new_generator_mappings esteja configurado como false:

@GeneratedValue(AUTO) mapeia para Hibernate "native".

@GeneratedValue(TABLE) mapeia para

org.hibernate.id.MultipleHiLoPerTableGenerator.

@GeneratedValue(SEQUENCE) mapeia para Hibernate "seqhilo".

Para mais informações sobre essas propriedades, acesse http://www.hibernate.org/docs e consulte Hibernate 4.1 Developer Guide.

Propriedades de Persistência JPA

As propriedades JPA a seguir são suportadas na definição da unidade de persistência no arquivo

persistence.xml:

Tabela 3.5. Propriedades da Unidade de Persistência JPA Nome da

Propriedade

Valor Padrão Propósito

jboss.as.jpa .providerMod ule

org.hibernat e

O nome do módulo do provedor de persistência.

O valor deve ser hibernate3-bundled, caso os JARs do Hibernate 3 estiverem no arquivo do aplicativo.

Se o provedor de persistência estiver empacotado com o aplicativo, este valor deve ser application.

jboss.as.jpa .adapterModu le org.jboss.as .jpa.hiberna te:4

O nome das classes de integração que ajudam o JBoss EAP 6 a funcionar com o provedor de persistência.

Os valores atuais válidos são:

org.jboss.as.jpa.hibernate:4: destinado para as classes de integração do Hibernate 4 org.jboss.as.jpa.hibernate:3: destinado para as classes de integração do Hibernate 3

Reportar um erro

Sumário

Quando você atualizar o seu aplicativo para utilizar Hibernate 4, algumas atualizações são gerais e válidas independente da versão do Hibernate sendo usada pelo aplicativo no momento. Para as demais atualizações, você precisa estabelecer qual versão o aplicativo está usando.

No documento JBoss Enterprise Application Platform 6.4 (páginas 47-50)