Mapeamento JPA

3 respostas
guilherme_ha

Olá pessoal, estou iniciando um trabalho com JPA(Hibernate), porem estou com grande dificuldade para fazer o mapeamento das minhas tabelas para o OO

Já pesquisei varios links aqui do forum e na web , mas sao todos muito avançados… e como ainda sou pouco leigo nesse assunto me enrrola tudo na hora que vou implementar o meu.

Ex:
Tenho 3 tabelas

Tabela_1
CREATE TABLE "Tabela_1" 
(
  "CD_MODU"	 VARCHAR(10) NOT NULL,
  "NM_MODU"	 VARCHAR(50),
  "DS_MODU"	 VARCHAR(200),
 PRIMARY KEY ("CD_MODULO")
);


CREATE TABLE "Tabela_2" 
(
  "CD_MODU"	 VARCHAR(10) NOT NULL,
  "CD_PROG"	 VARCHAR(10) NOT NULL,
  "DS_PROG"	 VARCHAR(50),
  "NM_PROG"	 VARCHAR(200),
 PRIMARY KEY ("CD_MODU", "CD_PROG")
);


CREATE TABLE "Tabela_3" 
(
  "CD_MODU"	 VARCHAR(10) NOT NULL,
  "CD_PROG"	 VARCHAR(10) NOT NULL,
  "CD_TELA"	 VARCHAR(10) NOT NULL,
  "DS_TELA"	 VARCHAR(50),
  "NR_LARG"	 INTEGER,
  "NR_ALTU"	 INTEGER,
  "NM_TABE"	 VARCHAR(10),
 PRIMARY KEY ("CD_MODU", "CD_PROG", "CD_TELA")
);

Alguem por gentileza poderia me escrever as classes dessas 3 tabelas ?

Desde já agradeço…!

3 Respostas

leandronsp

Então Guilherme,

Como gosto pessoal, eu prefiro utilizar nomes mais legíveis para os campos das tabelas.
Por exemplo, “NR_ALTU” poderia ficar melhor “int numeroAltura”…

Mas quanto ao mapeamento das classes, se é que eu entendi sua pergunta, vc pode criar suas classes, fazer as anotações do hibernate, mapea-las no xml do hibernate e rodar sem ter que digitar nenhum “create table”. Sua ´duvida é essa mesmo?

Por exemplo:

public class Pessoa {
   
   //Atributos - Variaveis de instancia
   @Id
   private int id;

   private String nome;
   private double salario;

   //Getters e Setters aqui
}

Essa aí acima seria uma classe, que precisa ser mapeada pelo hibernate.
Com isso, vc ganha tempo e mais clareza no seu codigo Java.

guilherme_ha

Olá muito obrigado pela atenção.
na verdade essas tabelas sao apenas exemplos…
no real os nomes sao mais legiveis sim…rs

na realidade eu já tenho a base criada…
ou seja, nao posso coloquei no persistence.xml a linha
<property name=“hibernate.hbm2ddl.auto” value=“update” />

Entao eu preciso apenas acessar essas tabelas, já existentes…
procurei coisas do tipo “JPA base de dados legado” mas nao obtive muito sucesso…

eu so preciso saber como fica esse mapeamento no java.
estou usando EJB3 e JPA com annotation.

Novamente agradeço a ajuda.!

guilherme_ha

Olá pessoal, obrigado pela atencao…
no meu Copy, Paste faltou a alter table onde crio o FK

Segue tabela_2 completa

CREATE TABLE “TABELA_2”

(

“CD_MODU”     VARCHAR(10) NOT NULL,

“CD_PROG”     VARCHAR(10) NOT NULL,

“DS_PROG”     VARCHAR(50),

“NM_PROG”     VARCHAR(200),

PRIMARY KEY (“CD_MODU”, “CD_PROG”)

);

CREATE UNIQUE INDEX “XPKTABELA_2” ON “TABELA_2”(“CD_MODU”, “CD_PROG”);
ALTER TABLE “TABELA_2” ADD FOREIGN KEY (“CD_MODU”) REFERENCES “TABELA_1” (“CD_MODU”);

Obigado

Criado 9 de março de 2009
Ultima resposta 10 de mar. de 2009
Respostas 3
Participantes 2