Aplicação de exemplo usando Eclipse, JPA Tools, JBoss (Aula 2)

Diego Raphael Pedroza Santiviago - 25 de Fevereiro de 2008 às 10:49

Nessa segunda parte, continuarems desenvolvendo a aplicação baseada em JPA e EJB 3.

Precisamos criar o Data Source utilizado pelo Eclipse no momento da criação do projeto JPA. Clique na aba “Data Source Explorer”, clique com o botão direito em “Databases”, “New”, “Generic JDBC Connection. Em name, digite “MySQL”, marque a opção Auto-connect at startup. Clique em “Next”.

Chegou a hora de escolher o driver. Clique no botão “…” para adicionar um novo driver. Escolha MySQL 5.1. Abrirá uma edição da definição do driver. Remova o arquivo atual, clicando no driver que já existe e adicione o driver que fizemos o download (Aquele unico JAR que está dentro do arquivo baixado.

Altere:

“Connection URL” para jdbc:mysql://localhost:3306/user”
“Database” para root

Clique em “OK”, em “Test Connection” para verificar se está tudo ok. Se der algum problema, algo está errado nos passos seguidos!

Verifique a database “root” para ver se as tabelas estão ali.

Vamos agora criar nosso projeto JPA. Clique com o botão direito na aba explorer, “New”, “Other”. Crie um JPA Project. No nome use “UserJPA”. Em “Configurations” certifique-se que está “Default Configuration for JBoss v4.2″. Marque a opção “Add project to an EAR” e escolha “UserEAR”

Clique em “Next”, “Next” novamente, desmarque a opção “Create orm.xml”, clique em Finish!

Vai perguntar aqueles negócios de perspectiva! Marque sim, e remember minha decisão! hahahha

Vamos começar a criar as classes. Clique com o botão direito em “src”. Em package, digite “com.ttwiter.user” e como nome de classe, Department.

Indique que a classe implementa a interface java.io.Serializable. Clique no warning apresentado, e marque a opção “Add default serial version ID”

Agora vamos a marotagem do plugin do eclipse para JPA. Clique em cima do nome Department (classe) selecionando-o e após, em “Map as” na aba “JPA Details ao seu canto inferior direito (estando na perspectiva JPA e escolha Map as: Entity. Isso adicionará a notation em cima da classe.

Crie as seguintes propriedades:

private Long id;
private String name;

Vamos consertar os erros na notation entity. Isso é causado porque fala que a classe não possui um Id. Para resolver a situação, clique em cima da proprierdade “id”, e selecione Map as id. Salve a classe, o erro deverá desaparecer.

Gere os setters/getters, não esquecendo de marcá-los como “final”, afinal, você não quer que uma classe filha sobrescreva seus métodos get/set, ou quer? Evil and Twisted

O código ficou assim:

@Entity
public class Department implements Serializable {

private static final long serialVersionUID = 1L;

@Id
private Long id;
private String name;

//Com seus devidos get/set e imports.

Crie a classe User, vai ser quase o mesmo procedimento, mas com umas marotagens a mais.

Indique que a classe implementa a interface Serializable, conserte o warning adicionando um serial version UID.

Clique sobre a classe User, e indique Map as Entity.

Crie as propriedades:

private Long id;
private String name;
private String email;
private String password;

private Department department = new Department();

Como você pode verificar, temos 2 erros. Um alertando que não temos um “id” e outro em cima da declaração de Department. Mapeie a propriedade id, e insira mais uma marotagem!

Adicione a notation @GeneratedValue para indicar que o valor de id é gerado, e dentro coloque (strategy=GenerationType.IDENTITY). Ou seja, ficará assim :

@GeneratedValue(strategy=GenerationType.IDENTITY)

Não coloque “;” no final!

O erro de Department ocorre porque a coluna department nao está sendo encontrada! A verdade é que precisamos mapear essa propriedade como “Muitos para um”. Para isso, clique em cima da propriedade department, e em Map as escolha “Many to One”, após isso, o erro deverá ser corrigido.

Gere os getters/setters menos para serialVersionUID.

Criaremos agora o Façade para representar nossa lógica de negócios dentro da aplicação.

Cria uma interface com o nome de UserSessionFacade, no pacote “com.ttwiter.user.service”. Essa interface se transformará em nossa interface de EJB. Para isso, insira a notação @Local.

Insira o método:

public List<Department> findAllDepartments();

public void create ( User user );

Bom, nesta aula continuamos contruindo a aplicação no Eclipse 3.3 utilizando JPA Tools.

Qualquer erro, reporte-nos!
Até a próxima.

Abraços!

Aula 3
Aula 1

7 Respostas a “Aplicação de exemplo usando Eclipse, JPA Tools, JBoss (Aula 2)”

gabriel escreveu um comentário em 25 de Março de 2008 - 16:13

Po, to esperando a parte 3.

Diogo escreveu um comentário em 30 de Abril de 2008 - 2:14

Cara, ótimo tutorial…mas e a aula 3?

Diego Raphael Pedroza Santiviago escreveu um comentário em 9 de Maio de 2008 - 9:46

Desculpem, achei que não tinha ninguém acompanhando por isso parei.
Hoje a noite passo a parte 3.

Abraços!

Kaio escreveu um comentário em 15 de Maio de 2008 - 7:45

Kara muito bom !!! .. Mas e ai nao rola outra aula ..

Diogo escreveu um comentário em 23 de Maio de 2008 - 21:52

Diego, meu quase chará!!! estou desesperado atras da aula 3 preciso muitooo dessa aula…tenho que entregar um trabalho sobre este assunto e conto com a sua ajuda!!

Valeu cara, espero ansiosamente a parte 3

Keith escreveu um comentário em 6 de Novembro de 2008 - 10:16

Diego… o que significa isto?

public List<Department> findAllDepartments();

public void create ( User user );

abcs

Keith escreveu um comentário em 6 de Novembro de 2008 - 17:17

FOI MAUS… é que tava aparecendo errado na pagina…
mas depois vendo o codigo posterior vi que era um LIST

Deseja comentar?