Autor
Mensagem
Saudações meus caros!!
Estou com um pequeno problema ao criar uma FK, no banco ela esta com valor null. Alguma dica? Segue os códigos:
@Entity
public class Pessoa implements Serializable {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
@Column(name=id_pessoa)
private Integer id;
private String nome;
private String endereco;
private String cpf;
@OneToMany(mappedBy=pessoa, fetch = FetchType.LAZY)
@Cascade(CascadeType.ALL)
private Collection <Carro> carros;
public int getId() {
return id;
}
private void setId(int id) {
this.id = id;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Collection<Carro> getCarros() {
return carros;
}
public void setCarros(Collection<Carro> carros) {
this.carros = carros;
}
@Override
public String toString() {
return nome+endereco+cpf+carros;
}
}
@Entity
public class Carro implements Serializable {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Integer id;
private String modelo;
private String cor;
private String placa;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name=id_pessoa,insertable=true, updatable=true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.SAVE_UPDATE)
private Pessoa pessoa;
public String getCor() {
return cor;
}
public void setCor(String cor) {
this.cor = cor;
}
public int getId() {
return id;
}
private void setId(int id) {
this.id = id;
}
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
public String getPlaca() {
return placa;
}
public void setPlaca(String placa) {
this.placa = placa;
}
public Pessoa getPessoa() {
return pessoa;
}
public void setPessoa(Pessoa pessoa) {
this.pessoa = pessoa;
}
@Override
public String toString() {
return modelo+cor+placa;
}
}
Estou com um pequeno problema ao criar uma FK, no banco ela esta com valor null. Alguma dica? Segue os códigos:
@Entity
public class Pessoa implements Serializable {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
@Column(name=id_pessoa)
private Integer id;
private String nome;
private String endereco;
private String cpf;
@OneToMany(mappedBy=pessoa, fetch = FetchType.LAZY)
@Cascade(CascadeType.ALL)
private Collection <Carro> carros;
public int getId() {
return id;
}
private void setId(int id) {
this.id = id;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Collection<Carro> getCarros() {
return carros;
}
public void setCarros(Collection<Carro> carros) {
this.carros = carros;
}
@Override
public String toString() {
return nome+endereco+cpf+carros;
}
}
@Entity
public class Carro implements Serializable {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Integer id;
private String modelo;
private String cor;
private String placa;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name=id_pessoa,insertable=true, updatable=true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.SAVE_UPDATE)
private Pessoa pessoa;
public String getCor() {
return cor;
}
public void setCor(String cor) {
this.cor = cor;
}
public int getId() {
return id;
}
private void setId(int id) {
this.id = id;
}
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
public String getPlaca() {
return placa;
}
public void setPlaca(String placa) {
this.placa = placa;
}
public Pessoa getPessoa() {
return pessoa;
}
public void setPessoa(Pessoa pessoa) {
this.pessoa = pessoa;
}
@Override
public String toString() {
return modelo+cor+placa;
}
}
PESSOAL OLHA AI O MEU MAIS:
SessionFactory fabrica = new AnnotationConfiguration().configure().buildSessionFactory();
Session session = fabrica.openSession();
Pessoa pessoa = new Pessoa();
pessoa.setNome(Lucas );
pessoa.setCpf(015.049.987-76);
pessoa.setEndereco(Av dois mil e doze);
Carro carro = new Carro();
carro.setModelo(palio );
carro.setCor(azul);
carro.setPlaca(llc 2712);
pessoa.setCarros(new HashSet<Carro>());
pessoa.getCarros().add(carro);
session.beginTransaction();
session.save(pessoa);
pessoa = (Pessoa) session.get(Pessoa.class, 1);
System.out.println(pessoa);
session.getTransaction().commit();
session.close();
SAIDA:
Hibernate: values identity_val_local()
Hibernate: insert into Carro (id, cor, modelo, id_pessoa, placa) values (default, ?, ?, ?, ?)
Hibernate: values identity_val_local()
Hibernate: select pessoa0_.id_pessoa as id1_1_0_, pessoa0_.cpf as cpf1_0_, pessoa0_.endereco as endereco1_0_, pessoa0_.nome as nome1_0_ from Pessoa pessoa0_ where pessoa0_.id_pessoa=?
Hibernate: select carros0_.id_pessoa as id5_1_, carros0_.id as id1_, carros0_.id as id0_0_, carros0_.cor as cor0_0_, carros0_.modelo as modelo0_0_, carros0_.id_pessoa as id5_0_0_, carros0_.placa as placa0_0_ from Carro carros0_ where carros0_.id_pessoa=?
andreAv dois mil e doze015.049.987-76[]
OU SEJA, O HIBERNATE NAO ESTA RETORNANDO O CARRO DA PESSOA COM ID 1 E NO BANCO A TABELA id_pessoa ESTA NULL
SessionFactory fabrica = new AnnotationConfiguration().configure().buildSessionFactory();
Session session = fabrica.openSession();
Pessoa pessoa = new Pessoa();
pessoa.setNome(Lucas );
pessoa.setCpf(015.049.987-76);
pessoa.setEndereco(Av dois mil e doze);
Carro carro = new Carro();
carro.setModelo(palio );
carro.setCor(azul);
carro.setPlaca(llc 2712);
pessoa.setCarros(new HashSet<Carro>());
pessoa.getCarros().add(carro);
session.beginTransaction();
session.save(pessoa);
pessoa = (Pessoa) session.get(Pessoa.class, 1);
System.out.println(pessoa);
session.getTransaction().commit();
session.close();
SAIDA:
Hibernate: values identity_val_local()
Hibernate: insert into Carro (id, cor, modelo, id_pessoa, placa) values (default, ?, ?, ?, ?)
Hibernate: values identity_val_local()
Hibernate: select pessoa0_.id_pessoa as id1_1_0_, pessoa0_.cpf as cpf1_0_, pessoa0_.endereco as endereco1_0_, pessoa0_.nome as nome1_0_ from Pessoa pessoa0_ where pessoa0_.id_pessoa=?
Hibernate: select carros0_.id_pessoa as id5_1_, carros0_.id as id1_, carros0_.id as id0_0_, carros0_.cor as cor0_0_, carros0_.modelo as modelo0_0_, carros0_.id_pessoa as id5_0_0_, carros0_.placa as placa0_0_ from Carro carros0_ where carros0_.id_pessoa=?
andreAv dois mil e doze015.049.987-76[]
OU SEJA, O HIBERNATE NAO ESTA RETORNANDO O CARRO DA PESSOA COM ID 1 E NO BANCO A TABELA id_pessoa ESTA NULL











