Tenho 2 classes no meu java, e quero adicionar. Com uma Classe até o ponto do curso eu consigo adicionar, não se se pra frente encinam a fazer com 2 Classe com uma a relação a outra. Vou dar um exemplo.
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
@Entity
public class Cliente implements Serializable{
private static final long serialVersionUID = 1L;
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private long id;
private String nome;
private String cpf;
private String rg;
private String telefone;
@OneToMany(fetch=FetchType.LAZY)
private List<Endereco> enderecos = new ArrayList<Endereco>();
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getRg() {
return rg;
}
public void setRg(String rg) {
this.rg = rg;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public List<Endereco> getEnderecos() {
return enderecos;
}
public void setEnderecos(List<Endereco> enderecos) {
this.enderecos = enderecos;
}
}
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class Endereco implements Serializable{
private static final long serialVersionUID = 1L;
@Id @GeneratedValue
private long idCliente;
private String cidade;
private String bairro;
private String numeroCasa;
public long getIdCliente() {
return idCliente;
}
public void setIdCliente(long idCliente) {
this.idCliente = idCliente;
}
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 String getNumeroCasa() {
return numeroCasa;
}
public void setNumeroCasa(String numeroCasa) {
this.numeroCasa = numeroCasa;
}
}
Como podem ter visto na Classe Cliente tem um Endereço. Como seria o meu metodo adiciona para popular no banco? Oque tenho é o meu adiciona com uma classe que seria assim.
public void adicionarCliente(T t) {
EntityManager manager = new JPAUtil().geEntityManager();
manager.getTransaction().begin();
manager.persist(t);
manager.getTransaction().commit();
manager.close();
}
como seria esse metodo? e depois como chamarei esse dao no meu controller? algo assim?
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import br.com.bercalini.empresa.modelo.Cliente;
import br.com.bercalini.empresa.modelo.Endereco;
import br.com.empresa.bercalini.DAO.DAO;
@ManagedBean
@ViewScoped
public class ClienteController implements Serializable{
private static final long serialVersionUID = 1L;
private Cliente cliente = new Cliente();
private Endereco endereco = new Endereco();
public void adicionar() {
new DAO<Cliente>(Cliente.class).adicionarCliente(this.cliente);
new DAO<Endereco>(Endereci.class).adicionarCliente(this.endereco);
}
public Endereco getEndereco() {
return endereco;
}
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
}
Quais seriam minhas modificaçoes? me ajudem porfavor :(