Configurando o provedor de persistência do WSJPA

O provedor de persistência do WebSphere Application Server (WSJPA) é o provedor padrão para Java Persistence API (JPA) 2.0.

Sobre Esta Tarefa

Embora construído a partir do provedor de persistência do Apache OpenJPA, o JPA para o provedor de persistência do WebSphere Application Server, WSJPA, contém os aprimoramentos e diferenças a seguir:
  • Suporte de SQL estática utilizando o recurso pureQuery do DB2
  • Suporte de intenção de acesso
  • Suporte de rastreio aprimorado
  • Geração de ID da versão
  • Comandos e scripts específicos do produto WebSphere
  • Arquivos de mensagens traduzidas
  • Verifique os caches em memória para relacionamentos muitos para um ou um para um carregados lentamente. Configurar a propriedade wsjpa.BrokerImpl como true especifica que a implementação de JPA tentará carregar campos lentos da memória no tempo de execução, se os dados da chave estrangeira dos campos lentos estiverem disponíveis. Use a propriedade a seguir:
    <property name="wsjpa.BrokerImpl" value="checkCacheForLazyFields=true"/> 
    Essa propriedade pode ser útil em muitos cenários. Por exemplo, suponha que você tem uma entidade de pessoa, a Pessoa(A), que possui um relacionamento um para um com outra pessoa, a Pessoa(B), e a Pessoa(B) está armazenada no cache de dados L2. Se esta propriedade estiver configurada quando a implementação de JPA localizar a Pessoa(A), a chave estrangeira carregada a partir da Pessoa(A) será usada para preencher o relacionamento da Pessoa(A) com a Pessoa(B).
  • A seguinte tabela mostra como os valores padrão das propriedades de configuração do provedor de persistência JPA para WebSphere Application Server são diferentes do provedor Apache OpenJPA:
    Tabela 1. Comparação. Comparação do provedor de persistência do JPA para WebSphere Application Server e do provedor Apache OpenJPA
    Propriedade Valor padrão do Apache OpenJPA Valor padrão do provedor de persistência do JPA para WebSphere Application Server
    openjpa.Compatibility StrictIdentityValues=false StrictIdentityValues=true
    openjpa.RuntimeUnenhancedClasses não suportado aviso
    openjpa.DynamicEnhancementAgent true false
    open.jdbc.DriverDataSource auto simples
Evitar Problemas Evitar Problemas: A propriedade de compatibilidade OpenJPA não remove tipos de proxy que o OpenJPA gera para determinados tipos de dados, especialmente tipos de data como GregorianCalendar. Essa omissão pode causar problemas com a desserialização. Se ocorrer um problema de desserialização, uma mensagem de erro, semelhante à mensagem a seguir, será emitida:gotcha
A Mensagem de Erro é: org.codehaus.jackson.map.JsonMappingException: 
Não é possível construir instância de org.apache.openjpa.util.java$util$GregorianCalendar$proxy, 
problema: nenhum método criador adequado localizado em 
[Origem: org.apache.http.conn.EofSensorInputStream@d83fbd5; linha: 1, coluna: 4094]

Além das substituições de propriedade, o uso da JPA padrão para o provedor de persistência do WebSphere Application Server também implica no uso da seguinte JPA para classes do WebSphere Application Server que substituem as classes correspondentes no Apache OpenJPA:

com.ibm.ws.persistence.jdbc.kernel.ConstraintUpdateManager;
com.ibm.ws.persistence.jdbc.kernel.WsJpaJDBCBrokerFactory;
com.ibm.ws.persistence.jdbc.sql.DB2Dictionary;
com.ibm.ws.persistence.jdbc.sql.OracleDictionary;
com.ibm.ws.persistence.jdbc.sql.SQLFactoryImpl;
com.ibm.ws.persistence.jdbc.sql.SQLServerDictionary;
com.ibm.ws.persistence.kernel.WsJpaBrokerImpl;
com.ibm.ws.persistence.kernel.WsJpaFinalizingBrokerImpl;

Se nenhum provedor JPA estiver configurado no elemento <provider> do arquivo persistence.xml em um módulo do Enterprise JavaBeans (EJB), o provedor JPA padrão que estiver atualmente configurado para esse servidor será usado. O produto está empacotado com o JPA para o provedor de persistência WebSphere Application Server como o provedor padrão. Porém, é possível substituir esse padrão e especificar um valor diferente por meio do console administrativo.

É possível configurar seu provedor de persistência padrão de uma das seguintes formas.

Nota:

Se você tiver um provedor de persistência padrão, o nome Java Naming and Directory Interface (JNDI) da origem de dados Java Transaction API (JTA) padrão, e os valores do nome JNDI da origem de dados não JTA padrão que foram configurados no produto antes do WebSphere Application Server Versão 7.0, por meio das propriedades da Java Virtual Machine (JVM), qualquer mudança nesses valores por meio do console administrativo substitui os valores que foram configurados com as propriedades da JVM.

Essas propriedades incluem com.ibm.websphere.jpa.default.provider, com.ibm.websphere.jpa.default.jta.datasource e com.ibm.websphere.jpa.default.nonjta.datasource. O suporte a essas propriedades foi reprovado. Quaisquer valores que foram configurados por meio dessas propriedades são exibidos como valores-padrão nesse painel. Esses valores que foram configurados por meio do painel do console administrativo substituem quaisquer valores configurados por meio das propriedades da JVM.

Procedimento


Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tejb_jpadefaultpp
Nome do arquivo: tejb_jpadefaultpp.html