Hibernate + Collections

Fala Pessoal,

Tenho essas três classes:

[code]public class Pessoa{

ArrayList telefones;

/// getters e setters

}[/code]

Resumindo… tenho uma classe Pessoa e essa pessoa tem uma lista de Telefones… até ai tudo bem, consigo fazer o mapeamento no hibernate etc… Agora… mudando um para o seguinte modelo (aqui tenho uma classe ListaTelefones que contém o ArrayList, e a classe Pessoa passa a ter um objeto do tipo ListaTelefones):

[code]public class Pessoa{

ListaTelefones listaTelefones;

/// getters e setters

}

public class ListaTelefones{

ArrayList telefones;

/// getters e setters

}[/code]

Alguém tem ideia de como eu posso fazer esse mapeamento para o Hibernate? Nesse caso, não posso usar <list></list> pois ListaTelefones não é um tipo que o hibernate aceita como coleção…

[]ws
Leo

[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - AnjoSupremo[/color][/size] :joia:

vc pode fazer um mapeamento de 1 para 1, da uma olhada em http://www.hibernate.org/hib_docs/v3/reference/en/html/mapping.html#mapping-declaration-onetoone

Certo…

eu posso fazer o mapeamento 1 para 1… mas seria algo assim:

Pessoa 1:1 ListaTelefones 1:N Telefones, certo ? (com três tabelas).

O que eu estava pensando em fazer era persistir apenas Pessoa e o ArrayList de Telefones que está na classe ListaTelefones (persistir apenas o ArrayList para a tabela de telefones no banco e não ter uma tabela para a ListaTelefones)

Acho que não estou conseguindo explicar bem :???: … mas criei uma Classe ListaTelefones para funcionar como uma “mascara” para o meu ArrayList…

por exemplo:

ArrayList a = new ArrayList&#40;&#41;;
a.add&#40;new Telefone&#40;&#41;&#41;; // Posso passar qualquer tipo de objeto 

mas com a “mascara” eu implento o meu método add em ListaTelefones para aceitar apenas Telefones como parâmetro.

classe ListaTelefones:

public class ListaTelefones&#123;

     private ArrayList telefones = new ArrayList&#40;&#41;;

     public void add&#40;Telefone t&#41;&#123;
          telefones.add&#40;t&#41;;
     &#125;

     public Telefone get&#40;int index&#41;&#123;
          return &#40;Telefone&#41;telefones.get&#40;index&#41;;
     &#125;

&#125;

usando a classe ListaTelefones:

ListaTelefones l = new ListaTelefones&#40;&#41;;
l.add&#40;new Telefone&#40;&#41;&#41;;

Resumindo… não quero permitir que objetos indesejados entrem na minha lista assim como não quero ficar fazendo conversão dos objetos cada vez que quiser um telefone…

Não sei se ficou claro… se alguem tiver feito solução parecida ou tiver alguma sujestão, agradeço :grin:

Vlws
Leo