Valdinei,
Dá pra fazer assim:
public class TelefoneForm {
private String ddd;
private String numero;
public Telefone coverter() {
return new Telefone(ddd, numero);
}
//metodos get/set
}
public class PessoaForm {
private String nome;
private Integer idade;
private List<TelefoneForm> telefones = new ArrayList<>();
public Pessoa converter() {
List<Telefone> telefones = this.telefones.stream().map(Telefone::converter).collect(Collectors.toList());
return new Pessoa(nome, idade, telefones);
}
//metodos get/set
}
@Entity
public class Pessoa {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nome;
private Integer idade;
@OneToMany(fetch = FetchType.EAGER, mappedBy = "pessoa", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Telefone> telefones = new ArrayList<Telefone>();
//JPA exige um construtor default
public Pessoa() {
}
public Pessoa(String nome, Integer idade, List<Telefone> telefones) {
this.nome = nome;
this.idade = idade;
//relacionamento bidirecional
telefones.forEach(t -> t.setPessoa(this));
this.telefones.addAll(telefones);
}
}
Bons estudos!