package com.algaworks.pedidovenda.model; import java.io.Serializable; import java.util.ArrayList; import java.util.List; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.Table; @Entity @Table(name = "cliente") public class Cliente implements Serializable { private static final long serialVersionUID = 1L; private Long id; private String nome; private String email; private String documentoReceitaFederal; private TipoPessoa tipo; private List<Endereco> enderecos = new ArrayList<>(); @Id @GeneratedValue public Long getId() { return id; } public void setId(Long id) { this.id = id; } @Column(nullable = false, length = 100) public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } @Column(nullable = false, length = 255) public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } @Column(name = "doc_receita_federal", nullable = false, length = 14) public String getDocumentoReceitaFederal() { return documentoReceitaFederal; } public void setDocumentoReceitaFederal(String documentoReceitaFederal) { this.documentoReceitaFederal = documentoReceitaFederal; } @Enumerated(EnumType.STRING) @Column(nullable = false, length = 10) public TipoPessoa getTipo() { return tipo; } public void setTipo(TipoPessoa tipo) { this.tipo = tipo; } @OneToMany(mappedBy = "cliente", cascade = CascadeType.ALL) public List<Endereco> getEnderecos() { return enderecos; } public void setEnderecos(List<Endereco> enderecos) { this.enderecos = enderecos; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((id == null) ? 0 : id.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Cliente other = (Cliente) obj; if (id == null) { if (other.id != null) return false; } else if (!id.equals(other.id)) return false; return true; } }