帮助朋友,我试图解决这个问题,但没有成功。我有2个类映射为@ OneToOne,但我不能在两个表中持久存在,在第二个表中返回null错误。你能帮帮我吗?
错误:
javax.el.PropertyNotFoundException:目标无法访问,'documento'返回null
我的班级候选人
package br.com.banco.model.bean;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;
import org.hibernate.annotations.LazyToOne;
import org.hibernate.annotations.LazyToOneOption;
@Entity
@Table(name="candidato")
public class Candidato {
@Id
@GeneratedValue
private Integer can_codigo;
private String can_dataregistro;
private String can_datanascimento;
private String can_etnia;
private String can_sexo;
private String can_nome;
private String can_mae;
private String can_pai;
private String can_tiposangue;
private String can_nacionalidade;
private String can_naturalidade;
private String can_uf;
@OneToOne
@JoinColumn(name="doc_codigo")
@LazyToOne(LazyToOneOption.FALSE)
private Documento documento;
@OneToOne
@JoinColumn(name="end_codigo")
@LazyToOne(LazyToOneOption.FALSE)
private Endereco endereco;
public void setCan_codigo(Integer can_codigo) {
this.can_codigo = can_codigo;
}
public Integer getCan_codigo() {
return can_codigo;
}
public String getCan_dataregistro() {
return can_dataregistro;
}
public void setCan_dataregistro(String can_dataregistro) {
this.can_dataregistro = can_dataregistro;
}
public String getCan_datanascimento() {
return can_datanascimento;
}
public void setCan_datanascimento(String can_datanascimento) {
this.can_datanascimento = can_datanascimento;
}
public String getCan_etnia() {
return can_etnia;
}
public void setCan_etnia(String can_etnia) {
this.can_etnia = can_etnia;
}
public String getCan_sexo() {
return can_sexo;
}
public void setCan_sexo(String can_sexo) {
this.can_sexo = can_sexo;
}
public String getCan_nome() {
return can_nome;
}
public void setCan_nome(String can_nome) {
this.can_nome = can_nome;
}
public String getCan_mae() {
return can_mae;
}
public void setCan_mae(String can_mae) {
this.can_mae = can_mae;
}
public String getCan_pai() {
return can_pai;
}
public void setCan_pai(String can_pai) {
this.can_pai = can_pai;
}
public String getCan_tiposangue() {
return can_tiposangue;
}
public void setCan_tiposangue(String can_tiposangue) {
this.can_tiposangue = can_tiposangue;
}
public String getCan_nacionalidade() {
return can_nacionalidade;
}
public void setCan_nacionalidade(String can_nacionalidade) {
this.can_nacionalidade = can_nacionalidade;
}
public String getCan_naturalidade() {
return can_naturalidade;
}
public void setCan_naturalidade(String can_naturalidade) {
this.can_naturalidade = can_naturalidade;
}
public String getCan_uf() {
return can_uf;
}
public void setCan_uf(String can_uf) {
this.can_uf = can_uf;
}
public Documento getDocumento() {
return documento;
}
public void setDocumento(Documento documento) {
this.documento = documento;
}
public Endereco getEndereco() {
return endereco;
}
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}
}
我的班级文件
package br.com.banco.model.bean;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
import javax.persistence.Table;
@Entity
@Table(name="documento")
public class Documento {
@Id
@GeneratedValue
private Integer doc_codigo;
private String doc_identidade;
private String doc_expeditor;
private String doc_uf;
private String doc_cpf;
private String doc_estado_civil;
private String doc_escolaridade;
private String doc_profissao;
@OneToOne(mappedBy="documento", cascade=CascadeType.ALL)
private Candidato candidato;
public Integer getDoc_codigo() {
return doc_codigo;
}
public void setDoc_codigo(Integer doc_codigo) {
this.doc_codigo = doc_codigo;
}
public String getDoc_identidade() {
return doc_identidade;
}
public void setDoc_identidade(String doc_identidade) {
this.doc_identidade = doc_identidade;
}
public String getDoc_expeditor() {
return doc_expeditor;
}
public void setDoc_expeditor(String doc_expeditor) {
this.doc_expeditor = doc_expeditor;
}
public String getDoc_uf() {
return doc_uf;
}
public void setDoc_uf(String doc_uf) {
this.doc_uf = doc_uf;
}
public String getDoc_cpf() {
return doc_cpf;
}
public void setDoc_cpf(String doc_cpf) {
this.doc_cpf = doc_cpf;
}
public String getDoc_estado_civil() {
return doc_estado_civil;
}
public void setDoc_estado_civil(String doc_estado_civil) {
this.doc_estado_civil = doc_estado_civil;
}
public String getDoc_escolaridade() {
return doc_escolaridade;
}
public void setDoc_escolaridade(String doc_escolaridade) {
this.doc_escolaridade = doc_escolaridade;
}
public String getDoc_profissao() {
return doc_profissao;
}
public void setDoc_profissao(String doc_profissao) {
this.doc_profissao = doc_profissao;
}
}
我的ManagedBean BBCandidato
package br.com.banco.controller;
import javax.annotation.PostConstruct;
import org.hibernate.Session;
import br.com.banco.model.bean.Candidato;
import br.com.banco.model.bean.Documento;
import br.com.banco.model.dao.HibernateDAO;
import br.com.banco.util.FacesContextUtil;
@javax.faces.bean.ManagedBean (name="bBCandidato")
@javax.faces.view.ViewScoped
public class BBCandidato {
private Candidato candidato;
private Documento documento;
private Session session;
private HibernateDAO<Candidato> candidatoDAO;
private HibernateDAO<Documento> documentoDAO;
@PostConstruct
public void init(){
session = FacesContextUtil.getRequestSession();
candidatoDAO = new HibernateDAO<Candidato>(Candidato.class, session);
documentoDAO = new HibernateDAO<Documento>(Documento.class, session);
candidato = new Candidato();
documento = new Documento();
}
public void salvar(){
candidatoDAO.salvar(candidato);
documentoDAO.salvar(documento);
}
public Candidato getCandidato(){
return candidato;
}
public void setCandidato(Candidato candidato){
this.candidato = candidato;
}
public Documento getDocumento() {
return documento;
}
public void setDocumento(Documento documento) {
this.documento = documento;
}
}