Acesso de Dados e Spring Framework
Para que beans Spring acessem uma origem de dados, é necessário configurar esses beans para que o Spring Framework delegue para, e se integre com, o tempo de execução do WebSphere Application Server corretamente.
O Spring Framework quebra beans Spring com uma camada de gerenciamento de contêiner que, em um ambiente de aplicativo corporativo, delega para o tempo de execução do aplicativo corporativo subjacente. As seções a seguir descrevem o que deve ser considerado ao configurar beans Spring que acessam uma origem de dados.
Acesso às Origens de Dados Configuradas no Servidor de Aplicativos
Para um aplicativo Spring acessar um recursos como uma origem de dados Java™ Database Connectivity (JDBC), o aplicativo deve usar um provedor de recursos que é gerenciado pelo servidor de aplicativos.
Para fazer isso, consulte o tópico Configurando o Acesso a uma Origem de Dados de Aplicativos Spring.
Conexões Nativas JDBC
O WebSphere Application Server não suporta o uso da classe NativeJdbcExtractor que o Spring Framework fornece, assim, evite cenários que usem esta classe. As implementações desta classe acessam conexões JDBC nativas e ignoram a qualidade das funções de serviço no servidor de aplicativos como acompanhamento e reassociação de identificadores de conexão, compartilhamento de conexões, gerenciamento de conjuntos de conexão e envolvimento em transações.
Como uma alternativa, é possível usar a classe WSCallHelper do servidor de aplicativos para acessar extensões de fornecedor não padrão para origens de dados.
API de Persistência Java
O WebSphere Application Server inclui dois provedores JPA; um que é baseado no EclipseLinks for JPA 2.1 e outro que é baseado na implementação do Apache OpenJPA do JPA 2.0. Para obter informações adicionais, consulte os links relacionados.
Para usar o Spring Framework com uma implementação JPA, é recomendável usar o JPA diretamente em vez de usar classes auxiliares JPA que são fornecidas com o Spring Framework no pacote org.springframework.orm.jpa.
<persistence-context-ref>
<persistence-context-ref-name>some/name</persistence-context-ref-name>
<persistence-unit-name>pu_name</persistence-unit-name>
</persistence-context-ref>
em que pu_name é o nome da unidade de persistência,
conforme definido no arquivo persistence.xml.<jee:jndi-lookup id="entityManager" jndi-name="some/name" />
<persistence-unit-ref>
<persistence-unit-ref-name>some/ref_name</persistence-unit-ref-name>
<persistence-unit-name>pu_name</persistence-unit-name>
</persistence-unit-ref>
O objeto EntityManagerFactory resultante está disponível sob
o ID "entityManagerFactory":<jee:jndi-lookup id="entityManagerFactory" jndi-name="some/ref_name" />