[Resolvido]Mapear coleção de String com annotations da JPA

2 respostas
bcartaxo

Tenho uma classe Cliente que tem como um atributo um conjunto de strings que representa os telefones desse cliente Set telefones. Gostaria de saber como faço para mapear usando as annotations do JPA esse conjunto para uma tabela de telefones, com uma coluna para o id do telefone, outra para o id do cliente e outra com a string do telefone propriamente dito. Seria um relacionamento one to many de clinete com telefone, porém como a classe String é da biblioteca de java eu n tenho como mapeá-la. Alguem faz ideia de como posso fazer isso?

Desde já agradeço.

2 Respostas

Javabuntu

colega a abordagem correta pra mapear um SET é assim:

@CollectionOfElements
     @JoinTable(name = "cliente_telefone", schema = "anotacoes",
              joinColumns = @JoinColumn(name = "id_cliente"))
     @Column(name = "telefone")
     private Set<String> telefones;

mas usando o relacionamento OneToMany seria assim:

@OneToMany(mappedBy="cliente", fetch = FetchType.LAZY)  // esse "cliente"   referencia seu cliente  em baixo
    @Cascade(CascadeType.ALL)  
     private Collection<String> telefones;
e
@ManyToOne(fetch = FetchType.EAGER)
   @JoinColumn(name="id_cliente",       //coluna de ligação
          insertable=true, updatable=true)
   @Fetch(FetchMode.JOIN)
   @Cascade(CascadeType.SAVE_UPDATE)
    private Cliente cliente;   // aquele  em cima referencia este

agora é vc ver como se adapta melhor no seu caso, mas tudo que vc precisa ta ai…espero ter ajudado…

flw Hewerton

bcartaxo

Valeu kra, ajudou bastante com certeza

Criado 27 de janeiro de 2008
Ultima resposta 27 de jan. de 2008
Respostas 2
Participantes 2