Bom dia, fiz os cursos de jsf, e só vi a anotação OneToOne, tava estudando para minhas provas, e agora voltei a estudar aqui na alura, e tenho uma duvida, tenho um projeto que vai ter um campo OneToMany, sempre usava oneToOne, vou criar um codigo aqui, que não é a minha duvida, más ira servir como, por exemplo tenho minha classe cliente e endereço. E um cliente pode ter mais de 1 endereco ficando mais ou menos assim...
Classe Cliente
@Entity
@Table(name = "cliente")
public class Cliente implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long codio;
private String nome;
private String tipoDePessoa;
private String cpf;
private String cnpj;
private String celular;
private String email;
@OneToMany(mappedBy = "cliente")
private List<Endereco> enderecos = new ArrayList<Endereco>();
public Long getCodio() {
return codio;
}
public void setCodio(Long codio) {
this.codio = codio;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getTipoDePessoa() {
return tipoDePessoa;
}
public void setTipoDePessoa(String tipoDePessoa) {
this.tipoDePessoa = tipoDePessoa;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getCnpj() {
return cnpj;
}
public void setCnpj(String cnpj) {
this.cnpj = cnpj;
}
public String getCelular() {
return celular;
}
public void setCelular(String celular) {
this.celular = celular;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public List<Endereco> getEnderecos() {
return enderecos;
}
public void setEnderecos(List<Endereco> enderecos) {
this.enderecos = enderecos;
}
}
Classe Endereco
@Entity
@Table(name = "endereco")
public class Endereco implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long codigo;
private String cidade;
private String bairro;
private Integer numeroCasa;
public Long getCodigo() {
return codigo;
}
public void setCodigo(Long codigo) {
this.codigo = codigo;
}
public String getCidade() {
return cidade;
}
public void setCidade(String cidade) {
this.cidade = cidade;
}
public String getBairro() {
return bairro;
}
public void setBairro(String bairro) {
this.bairro = bairro;
}
public Integer getNumeroCasa() {
return numeroCasa;
}
public void setNumeroCasa(Integer numeroCasa) {
this.numeroCasa = numeroCasa;
}
}
Está correto a minha classe assim? Depois por exemplo irei adicionar. Iria eu ter algo parecido com isso? Na hora que eu clico em adicionar me retorna um erro. minha classe java bean está assim...
@ManagedBean(name = "clienteBean")
@ViewScoped
public class ClienteBean implements Serializable{
private static final long serialVersionUID = 1L;
private Cliente cliente = new Cliente();
private Endereco endereco = new Endereco();
private List<Endereco> enderecos = new ArrayList<Endereco>();
public void salvar() {
enderecos.add(endereco);
new EnderecoDAO().adicionar(endereco);
new ClienteDAO().adicionar(cliente);
new Mensagem().mensagemInfo("Cliente adicionado com sucesso");
this.cliente = new Cliente();
this.endereco = new Endereco();
}
Oque está errado?