Oi pessoal, estou aprendendo hibernate agora, e uso Postgres. Fiz um mapeamento OneToManY, onde um Dono pode ter varios Cachorros.
Fiz as classes InserirDono e InserirCachorro, mas apenas a primeira funciona, a segunda da erro.
Ao inserir cachorro, preciso identificar qual será o dono, certo? como faço isso????
package dono.bean;
import cachorro.bean.CachorroBean;
import java.io.Serializable;
import java.util.Collection;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
@Entity
@Table (name="dono")
public class DonoBean implements Serializable {
@Id
@Column(name="cod")
@SequenceGenerator(name = "seq_dono", sequenceName = "dono_cod_seq")
@GeneratedValue( generator = "seq_dono")
private Integer cod;
@OneToMany(mappedBy = "donoBean")
@JoinTable(name="dono_cachorro",
joinColumns=@JoinColumn(name="cod"),
inverseJoinColumns=@JoinColumn(name="codigo"))
private Collection<CachorroBean> cachorro;
@Column(name="nome")
private String nome;
@Column(name="tel")
private String tel;
//overrides e metodos get set
package cachorro.bean;
import dono.bean.DonoBean;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
@Entity
@Table (name="cachorro")
public class CachorroBean implements Serializable{
@ManyToOne
private DonoBean donoBean;
@Id
@Column(name="codigo")
@SequenceGenerator(name = "seq_cachorro", sequenceName = "cachorro_codigo_seq")
@GeneratedValue(generator = "seq_cachorro")
private Integer codigo;
@Column(name="nome")
private String nome;
@Column(name="raca")
private String raca;
import dono.bean.DonoBean;
import dono.dao.DonoDao;
import dono.dao.DonoDaoImpl;
import java.security.Principal;
import java.util.logging.Level;
import java.util.logging.Logger;
import util.DaoException;
public class InserirDono {
public static void main (String[] args){
DonoBean d1 = new DonoBean();
d1.setNome("Rafaela");
d1.setTel("9121-0000");
DonoDao dd = new DonoDaoImpl();
try {
dd.inserir(d1);
} catch (DaoException ex) {
Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
import cachorro.bean.CachorroBean;
import cachorro.dao.CachorroDao;
import cachorro.dao.CachorroDaoImpl;
import java.security.Principal;
import java.util.logging.Level;
import java.util.logging.Logger;
import util.DaoException;
public class InserirCachorro {
public static void main (String[] args){
CachorroBean cb = new CachorroBean();
cb.setNome("Polly");
cb.setRaca("Poodle");
CachorroDao cd = new CachorroDaoImpl();
try {
CachorroBean inserir = cd.inserir(cb);
} catch (DaoException ex) {
Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println("inserido");
}
}
Aguardo a ajuda de vcs!