Seguindo a tradição de facilidade de desenvolvimento, trabalhar a sua aplicação Mentawai com JPA é muito fácil!
Se você não conhece nada de JPA dê uma olhada nesse Hello JPA World e no Java Persistence API FAQ .
Abaixo a única coisa que você precisa fazer para habilitar o uso de JPA:
declarar a Persistence Unit no ApplicationManager
Code:
public void loadActions() {
// seta o persistent-unit do JPA
JPAHelper.setPersistenceUnit("meuBancoDeDados");
// suas actions
Pronto! Depois disso é só sair usando!
Pela definição do JPA, dentro do META-INF da sua aplicação deve existir um arquivo persistence.xml com as informações de conexão do banco de dados e de qual implementação de persistência você vai usar: Oracle Toplink, EJB3 ou Hibernate. Esse exemplo é do último citado:
Code:
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns
si="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
version="1.0">
<persistence-unit name="meuBancoDeDados">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>org.mentawai.list.ListDataItemJPA</class>
<properties>
<property name="hibernate.archive.autodetection" value="class, hbm"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="connection.url" value="jdbc:mysql://localhost/meuBanco"/>
<property name="connection.username" value="root"/>
<property name="connection.password" value=""/>
<property name="connection.pool_size" value="5"/>
</properties>
</persistence-unit>
</persistence>
para fazer suas consultas:
Exemplo de consultar uma empresa:
Code:
EntityManager em = JPAHelper.getEntityManagerForQueries();
Empresa empresa = em.find(Empresa.class, codigo);
JPAHelper.closeEntityManagerForQueries(em);
Para fazer suas transações:
Exemplo de gravar uma empresa:
Code:
EntityManager em = JPAHelper.beginTransaction();
em.persist(empresa);
JPAHelper.commitTransaction(em);
usar com DBListData
Se você precisar de um combo de empresas como esse:
Code:
DBListData dbListData = new DBListData("empresas", "codigo", "nome", "Empresa", "nome");
A chamada para carregar a lista é essa:
Code:
try{
dbListData.loadUsingJPA();
} catch(SQLException e){ }
ListManager.addList(dbListData);
Atualmente o suporte ao JPA só existe na versão beta, mas em breve estará disponível.
Bom proveito e boas transações !