-
Notifications
You must be signed in to change notification settings - Fork 0
Manual JPA
Erick Souza edited this page Jul 25, 2017
·
12 revisions
- Para criar um banco de dados no Postgres, abra um terminal e digite:
$ pgadmin3
- Conecte-se ao SGBD e crie um banco de dados:
-
Baixe a versão mais atual do driver JDBC para Postgres.
-
Copie o jar do driver JDBC (neste caso, postgresql-9.1-903.jdbc4.jar) para a pasta $JBOSS_HOME/standalone/deployments.
-
Entre no console de administração do JBoss para criação de um Data Source, acessando o endereço http://localhost:8080/
-
Insira as credenciais de acesso e clique em Administration Console:
- Selecione o caminho Configuration -> Subsystems -> Datasources -> NonXA:
- Clique em Add e informe o tipo do Datasource, conforme a figura:
- Selecione o driver JDBC utilizado:
- Informe nome, login e senha do banco:
- Teste a conexão:
-
Execute o manual para a criação de um EJB
-
Crie o arquivo persistence.xml dentro do diretório META-INF do Módulo EJB:
<?xml version="1.0" encoding="UTF-8"?>
<persistence 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"
version="2.0">
<persistence-unit name="ExemploPU">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/TreinamentoDS</jta-data-source>
<class>br.unifor.entity.Empregado</class>
<properties>
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.use_sql_comments" value="false" />
</properties>
</persistence-unit>
</persistence>
- No projeto ModuloEJBClient, crie a entidade:
package br.unifor.entity;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Empregado implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private Long id;
private String nome;
//gets and sets
}
- Na interface MeuBeanRemote, adicione a assinatura:
public void inserirEmpregado(Empregado empregado);
- Implemente o método no bean MeuBean do módulo EJB, usando anotações para fazer as injeções de dependência
package br.unifor.bean;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import br.unifor.dao.EmpregadoDAO;
import br.unifor.entity.Empregado;
@Stateless
public class MeuBean implements MeuBeanRemote {
@EJB
private EmpregadoDAO empregadoDAO;
@Override
public String helloWorld() {
return "Hello world";
}
@Override
public void inserirEmpregado(Empregado empregado) {
empregadoDAO.insere(empregado);
}
}
- Implemente o EmpregadoDAO para persistir os dados, usando anotações para fazer as injeções de dependência
package br.unifor.dao;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import br.unifor.entity.Empregado;
@Stateless
public class EmpregadoDAO {
@PersistenceContext
private EntityManager manager;
public void insere(Empregado empregado) {
manager.persist(empregado);
}
}
- No programa principal, adicione o código para acessar o método do EJB
Empregado empregado = new Empregado();
empregado.setNome("Pedro");
bean.inserirEmpregado(empregado);