domingo, 22 de setembro de 2013

Configurando fontes de dados com o JBoss (II)

Este post faz parte de uma série sobre Spring, JPA e JSF. Caso algum assunto abordado aqui não esteja claro, consulte este link: Spring + JPA.

Vamos agora abordar a criação da unidade de persistência. Já vimos que a unidade de persistência será chamada de "PU", como está declarado no arquivo AppConfig (veja a linha 22 do arquivo, neste post).

Vamos usar Hibernate, JPA 2, JTA, além do Spring, é claro. Vai ser um pouco trabalhoso, mas que renderá muitos benefícios e poderá ser totalmente reaproveitado em outros projetos.

Criamos o arquivo persistence.xml no NetBeans e configuramos seu código (é melhor que configurar pelo wizard...) da seguinte maneira:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
  <persistence-unit name="PU" transaction-type="JTA">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>java:/fonteDeDados</jta-data-source>
    <class>entity.classe1</class>
    <class>entity.classe2</class>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <validation-mode>NONE</validation-mode>
    <properties>
      <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
      <property name="hibernate.show_sql" value="false"/>
      <property name="hibernate.format_sql" value="false"/>
      <property name="javax.persistence.validation.mode" value="none"/>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
    </properties>
  </persistence-unit>
</persistence>

  • Na linha 3, temos o nome da unidade de persistência, como foi comentado no primeiro parágrafo. Na linha 5, a ligação da unidade de persistência com o famigerado identificador que já apareceu em vários arquivos de configuração. Aqui percebemos que em um novo projeto, o que muda é apenas o arquivo persistence.xml - todo o restante da configuração aponta para "fonteDeDados", inclusive o próprio persistence.xml. Até o JBoss referencia fonteDeDados, e essas dependências ajudam a realizar alterações de ambiente (mudar servidor, mudar plataforma do banco de dados, etc.) com pouquíssimas alterações no projeto.
  • Nas linhas 6, 7 e 8 temos a configuração das classes (que serão criadas em outro post).
  • Na linha 15 temos um parâmetro que indica ao Hibernate para criar as tabelas de acordo com as anotações das classes declaradas nas linhas 6 e 7. Percebemos que só é necessário criar um banco de dados, conseguir uma conexão, configurar o Spring e a unidade de persistência. Quando executarmos o projeto e ele necessitar de acesso ao banco de dados, será feita a verificação das classes e as tabelas serão criadas automaticamente. Esse assunto veremos com mais detalhes em outro post.
Aqui termina a configuração do projeto básico usando Spring + JPA. Todas as configurações necessárias para trabalhar com as camadas de dados já estão contempladas nestes arquivos de configuração que foram mostrados até aqui. Agora precisamos criar os métodos genéricos para realizar as operações CRUD (Create, Read, Update e Delete), e é nesse instante que o conhecimento de OOP (Object Oriented Programming) e Spring faz a diferença.

Conforme avançarmos na construção das camadas (elaboradas com base no design pattern MVC), surgirão os comentários a respeito das configurações utilizadas até aqui. Modificações deverão ser feitas sempre que quisermos alterar comportamento de logs, recriar tabelas, e etc..

No próximo post, como gerar as tabelas pelo próprio projeto do NetBeans.

Nenhum comentário:

Postar um comentário