目标无法访问,'documento'返回null

时间:2014-04-11 04:12:01

标签: hibernate jsf jpa null entity

帮助朋友,我试图解决这个问题,但没有成功。我有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;
    }
}

0 个答案:

没有答案