Mapeamento de uma entidade para varias tabelas

2 respostas
C

Bom dia

Estou usando jpa para mapear minhas classes e tenho uma dificuldade:

Tenho no banco as tabelas:

pessoa
usuario
cliente

pessoa_email
usuario_email
cliente_email

E as classes:

Pessoa
Usuario
Cliente
Email

Gostaria de mapear a classe Email para todas as tabelas de email (pessoa_email, usuario_email, cliente_email)
ja que todas tem a mesma estrutura, nao quero gravar os dados de email em uma unica tabela (email)
com um campo para diferenciar o tipo

Ja pesquisei sobre mapeamento jpa mas nao encontrei nada, o que consegui foi so o seguinte:
Tenho a classe Email e tenho que criar as classes PessoaEmail, UsuarioEmail, ClienteEmail
e no mapeamento eu coloco “inheritance” mas ele cria a tabela email com um campo para diferenciar.

Alguem sabem como fazer, se é que tem como fazer isso que eu quero,
ou se para isso terei que usar um outro famework de persistencia ou fazer em jdbc mesmo.

Obrigado

2 Respostas

Hebert_Coelho

Isso aqui pode te ajudar: Mapeando Duas Tabelas em uma Classe

Nos comentários mostra como mapear 3 ou mais tabelas. [=

C

jakefrog:
Isso aqui pode te ajudar: Mapeando Duas Tabelas em uma Classe

Nos comentários mostra como mapear 3 ou mais tabelas. [=

Ola, fiz como no exemplo do link, mas so deu certo desta forma:

Na classe Pessoa eu mudei o atributo que seria os emails, List emails para email String

public class Pessoa {
    
    @Column(table = "pessoa_email", name = "email")
    private String email;

}

Assim deu certo, mas eu queria mapear uma lista de objetos do tipo email, ai nao da certo, nem mesmo mapeando uma lista e String.

A classe que eu quero mapear é asssim.

public class Pessoa {
    private List<Email> emails;
}

Muito obrgado

Criado 21 de abril de 2012
Ultima resposta 21 de abr. de 2012
Respostas 2
Participantes 2