Duvida Hibernate

4 respostas
M

Ola pessoal
Como é possivel fazer o mapeamento de uma Classe onde a mesma contém um atributo ou uma Collection, que é uma Interface ou classe abstrata.

Exemplo: A Classe Pessoa tem um atributo collection que deve conter IContatos (interface), onde essa interface é implementada por Telefone, Email e outras.

Como se faz um mapeamento desse tipo.

Obrigado pela atenção

4 Respostas

Anderson_Schmidt

Olá


Como é possivel fazer o mapeamento de uma Classe onde a mesma contém um atributo ou uma Collection, que é uma Interface ou classe abstrata.

É um tanto quanto incomum fazer criar a hierarquia de classes de modelo usando uma interface, pelo menos para casos como o seu. Na minha opinião, a solucao seria trocar essa sua interface por uma classe comum, e usar heranca entre Contato e suas subclasses.

Flws!

M

Obrigadão, vai dar certo assim, vou criar classes concretas e trabalhar com herança.

Valeu pela a atenção.

T

Na documentação do hibernate annotations encontrei o atributo targetEntity, o código abaixo demonstra o uso:

@Entity()
public class Flight implements Serializable {
    @ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE}, targetEntity=CompanyImpl.class )
    @JoinColumn(name="COMP_ID")
    public Company getCompany() {
        return company;
    }
    ...
}

ref.: http://www.hibernate.org/hib_docs/annotations/reference/en/html_single/#entity-mapping-association

D

Boa tarde.

Estou com um problema parecido com o descrito aqui.

Tenho uma classe, chamada Acerto, que tem duas coleções de interfaces, uma com ContaAReceber e outra com Recebimento.
No meu caso, não seria possível usar herança (pelo menos é o que eu acho), pois eu posso ter uma classe Cheque, que segundo o problema que me foi apresentado, pode ser considerado tanto uma ContaAReceber (por exemplo, um cheque devolvido) como um Recebimento (pois o cliente paga uma conta com ele), o que acabaria me impedindo de usar herança.
Se precisasse usar herança, teria que utilizar “herança múltipla”, que no Java não existe.

Alguma dica?

Criado 2 de novembro de 2006
Ultima resposta 10 de jul. de 2008
Respostas 4
Participantes 4