Eu tenho um formulário de cliente e este formulário contem dados para serem inseridos em duas tabelas diferentes, no casa a tabela pessoa e a endereço, como posso realizar este inserte em tabelas múltiplas com o hibernate?
Alguém tem um exemplo de como pode ficar a parte do DAO para inserção?
Classe Usuario (ou pessoa pra você)
@Entity
public class Usuario implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer idUsuario;
@Column(length = 100, nullable = false)
private String nomeCompleto;
@Column(length = 20, unique = true, nullable = false, updatable = false) //Único login no banco
private String login;
@Column(length = 50, nullable = false)
private String senha;
@Column(unique = true, nullable = false, updatable = false) //Único e-mail no banco
private String email;
@Enumerated(EnumType.STRING)
@Column(nullable = false)
private TipoAdm tipoAdm;
@Column(length = 11, unique = true, nullable = false) //Único CPF no banco
private String cpf;
@Column(length = 15, unique = true, nullable = false) //Único RG no banco
private String rg;
@Column(length = 14, nullable = false)
private String telefone;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "usuario", fetch = FetchType.LAZY)
private List<Endereco> enderecos;
Classe Endereço :
@Entity
public class Endereco implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer idEndereco;
@Column(length = 8, unique = true, nullable = false) //Único CEP no banco
private String cep;
@Column(length = 100, nullable = false)
private String rua;
@Column(length = 100, nullable = false)
private String bairro;
@Column(length = 2, nullable = false)
private String uf;
@Column(length = 6, nullable = false)
private int numero;
@Column(length = 60, nullable = false)
private String cidade;
@Column(length = 50, nullable = false)
private String complemento;
@ManyToOne(cascade = CascadeType.ALL)
private Usuario usuario;