jpa外键两个实体

时间:2016-07-07 06:18:33

标签: hibernate jpa foreign-keys one-to-many

我有以下数据库架构

enter image description here

表Encuesta_Sem的字段为encuesta_sem_id,表encuestado具有此外键。

我使用JPA和hibernate。我想在表encuestado中记录表encuesta_sem的相同生成的encuesta_sem_id。

我的java类是

Encuesta_SEM.java

package eusurvey.modelA.daos;

import java.io.Serializable;
import javax.persistence.*;

import java.sql.Timestamp;
import java.util.List;


/**
 * The persistent class for the ENCUESTA_SEM database table.
 * 
 */
@Entity
@Table(name="ENCUESTA_SEM")
public class EncuestaSem implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name = "ENCUESTA_SEM_ID")
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long encuestaSemId;

    @Id
    @Column(name = "SURVEY_ID")
    private long surveyId;


    @Column(name="CRIT_CLA_PENSION")
    private String critClaPension;

    @Column(name="CRIT_COD_CAUSA")
    private String critCodCausa;

    @Column(name="CRIT_COD_FORMA_PAGO")
    private String critCodFormaPago;

    @Column(name="CRIT_FEC_ULT_SITUACION_FIN")
    private String critFecUltSituacionFin;

    @Column(name="CRIT_FEC_ULT_SITUACION_INICIO")
    private String critFecUltSituacionInicio;

    @Column(name="CRIT_IND_AFECTADA_RJ")
    private String critIndAfectadaRj;

    @Column(name="CRIT_ULT_SITUACION")
    private String critUltSituacion;

    @Column(name="CRTI_COD_PAIS")
    private String crtiCodPais;

    private String estado;

    @Column(name="FECHA_FIN")
    private Timestamp fechaFin;

    @Column(name="FECHA_INICIO")
    private Timestamp fechaInicio;

    //bi-directional many-to-many association to ComentariosValor
    @ManyToMany
    @JoinTable(
        name="COMENTARIO"
        , joinColumns={
            @JoinColumn(name="ENCUESTA_SEM_ID", referencedColumnName="ENCUESTA_SEM_ID"),
            @JoinColumn(name="SURVEY_ID", referencedColumnName="SURVEY_ID")
            }
        , inverseJoinColumns={
            @JoinColumn(name="COMENTARIOS_VALOR_ID")
            }
        )
    private List<ComentariosValor> comentariosValors;

    //bi-directional many-to-one association to Encuestado
    @OneToMany(mappedBy="encuestaSem")
    private List<Encuestado> encuestados;

    //bi-directional many-to-one association to PlantillaEncuesta
    @OneToMany(mappedBy="encuestaSem")
    private List<PlantillaEncuesta> plantillaEncuestas;

    //bi-directional many-to-one association to Respuesta
    @OneToMany(mappedBy="encuestaSem")
    private List<Respuesta> respuestas;

    public EncuestaSem() {
    }



    public String getCritClaPension() {
        return this.critClaPension;
    }

    public void setCritClaPension(String critClaPension) {
        this.critClaPension = critClaPension;
    }

    public String getCritCodCausa() {
        return this.critCodCausa;
    }

    public void setCritCodCausa(String critCodCausa) {
        this.critCodCausa = critCodCausa;
    }

    public String getCritCodFormaPago() {
        return this.critCodFormaPago;
    }

    public void setCritCodFormaPago(String critCodFormaPago) {
        this.critCodFormaPago = critCodFormaPago;
    }

    public String getCritFecUltSituacionFin() {
        return this.critFecUltSituacionFin;
    }

    public void setCritFecUltSituacionFin(String critFecUltSituacionFin) {
        this.critFecUltSituacionFin = critFecUltSituacionFin;
    }

    public String getCritFecUltSituacionInicio() {
        return this.critFecUltSituacionInicio;
    }

    public void setCritFecUltSituacionInicio(String critFecUltSituacionInicio) {
        this.critFecUltSituacionInicio = critFecUltSituacionInicio;
    }

    public String getCritIndAfectadaRj() {
        return this.critIndAfectadaRj;
    }

    public void setCritIndAfectadaRj(String critIndAfectadaRj) {
        this.critIndAfectadaRj = critIndAfectadaRj;
    }

    public String getCritUltSituacion() {
        return this.critUltSituacion;
    }

    public void setCritUltSituacion(String critUltSituacion) {
        this.critUltSituacion = critUltSituacion;
    }

    public String getCrtiCodPais() {
        return this.crtiCodPais;
    }

    public void setCrtiCodPais(String crtiCodPais) {
        this.crtiCodPais = crtiCodPais;
    }

    public String getEstado() {
        return this.estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    public Timestamp getFechaFin() {
        return this.fechaFin;
    }

    public void setFechaFin(Timestamp fechaFin) {
        this.fechaFin = fechaFin;
    }

    public Timestamp getFechaInicio() {
        return this.fechaInicio;
    }

    public void setFechaInicio(Timestamp fechaInicio) {
        this.fechaInicio = fechaInicio;
    }

    public List<ComentariosValor> getComentariosValors() {
        return this.comentariosValors;
    }

    public void setComentariosValors(List<ComentariosValor> comentariosValors) {
        this.comentariosValors = comentariosValors;
    }

    public List<Encuestado> getEncuestados() {
        return this.encuestados;
    }

    public void setEncuestados(List<Encuestado> encuestados) {
        this.encuestados = encuestados;
    }

    public List<PlantillaEncuesta> getPlantillaEncuestas() {
        return this.plantillaEncuestas;
    }

    public void setPlantillaEncuestas(List<PlantillaEncuesta> plantillaEncuestas) {
        this.plantillaEncuestas = plantillaEncuestas;
    }

    public List<Respuesta> getRespuestas() {
        return this.respuestas;
    }

    public void setRespuestas(List<Respuesta> respuestas) {
        this.respuestas = respuestas;
    }

    public long getEncuestaSemId() {
        return encuestaSemId;
    }

    public void setEncuestaSemId(long encuestaSemId) {
        this.encuestaSemId = encuestaSemId;
    }

    public long getSurveyId() {
        return surveyId;
    }

    public void setSurveyId(long surveyId) {
        this.surveyId = surveyId;
    }

    public static long getSerialversionuid() {
        return serialVersionUID;
    }


}

Encuestado.java

package eusurvey.modelA.daos;

import java.io.Serializable;
import javax.persistence.*;

import java.sql.Timestamp;
import java.math.BigDecimal;


/**
 * The persistent class for the ENCUESTADO database table.
 * 
 */
@Entity
@Table(name="ENCUESTADO")
public class Encuestado implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @Column(name="ID")
    @GeneratedValue(strategy=GenerationType.AUTO)
    private long id;

    @Column(name="ENCUESTA_SEM_ID")
    private long encuestaSemId;

    @Column(name="SURVEY_ID")
    private long surveyId;


    @Column(name="CLA_PENSION")
    private BigDecimal claPension;

    @Column(name="COD_PERSO")
    private BigDecimal codPerso;

    @Column(name="COMP_CORREO_ELEC")
    private String compCorreoElec;

    @Column(name="DIR_CORREO_ELEC")
    private String dirCorreoElec;

    private String direccion;

    @Column(name="EMAIL_NO_POSIBLE_ENVIO")
    private String emailNoPosibleEnvio;

    private String emailenviado;

    private String emailenvio;

    @Column(name="ENCUESTADO_UID")
    private String encuestadoUid;

    @Column(name="EXIST_EMAIL")
    private String existEmail;

    @Column(name="FEC_ALTA_NOMINA")
    private String fecAltaNomina;

    @Column(name="FECHA_ENVIO")
    private Timestamp fechaEnvio;

    @Column(name="IND_SEXO")
    private String indSexo;

    @Column(name="NOM_APELLIDO1")
    private String nomApellido1;

    @Column(name="NOM_APELLIDO2")
    private String nomApellido2;

    @Column(name="NOM_NOMBRE")
    private String nomNombre;

    @Column(name="NUM_EXPTE")
    private BigDecimal numExpte;

    @Column(name="TIPO_USUARIO")
    private String tipoUsuario;

    //bi-directional many-to-one association to EncuestaSem
    @ManyToOne
    @JoinColumns({
        @JoinColumn(name="ENCUESTA_SEM_ID", referencedColumnName="ENCUESTA_SEM_ID",insertable = false, updatable = false),
        @JoinColumn(name="SURVEY_ID", referencedColumnName="SURVEY_ID",insertable = false, updatable = false)
        })
    private EncuestaSem encuestaSem;

    public Encuestado() {
    }



    public BigDecimal getClaPension() {
        return this.claPension;
    }

    public void setClaPension(BigDecimal claPension) {
        this.claPension = claPension;
    }

    public BigDecimal getCodPerso() {
        return this.codPerso;
    }

    public void setCodPerso(BigDecimal codPerso) {
        this.codPerso = codPerso;
    }

    public String getCompCorreoElec() {
        return this.compCorreoElec;
    }

    public void setCompCorreoElec(String compCorreoElec) {
        this.compCorreoElec = compCorreoElec;
    }

    public String getDirCorreoElec() {
        return this.dirCorreoElec;
    }

    public void setDirCorreoElec(String dirCorreoElec) {
        this.dirCorreoElec = dirCorreoElec;
    }

    public String getDireccion() {
        return this.direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public String getEmailNoPosibleEnvio() {
        return this.emailNoPosibleEnvio;
    }

    public void setEmailNoPosibleEnvio(String emailNoPosibleEnvio) {
        this.emailNoPosibleEnvio = emailNoPosibleEnvio;
    }

    public String getEmailenviado() {
        return this.emailenviado;
    }

    public void setEmailenviado(String emailenviado) {
        this.emailenviado = emailenviado;
    }

    public String getEmailenvio() {
        return this.emailenvio;
    }

    public void setEmailenvio(String emailenvio) {
        this.emailenvio = emailenvio;
    }

    public String getEncuestadoUid() {
        return this.encuestadoUid;
    }

    public void setEncuestadoUid(String encuestadoUid) {
        this.encuestadoUid = encuestadoUid;
    }

    public String getExistEmail() {
        return this.existEmail;
    }

    public void setExistEmail(String existEmail) {
        this.existEmail = existEmail;
    }

    public String getFecAltaNomina() {
        return this.fecAltaNomina;
    }

    public void setFecAltaNomina(String fecAltaNomina) {
        this.fecAltaNomina = fecAltaNomina;
    }

    public Timestamp getFechaEnvio() {
        return this.fechaEnvio;
    }

    public void setFechaEnvio(Timestamp fechaEnvio) {
        this.fechaEnvio = fechaEnvio;
    }

    public String getIndSexo() {
        return this.indSexo;
    }

    public void setIndSexo(String indSexo) {
        this.indSexo = indSexo;
    }

    public String getNomApellido1() {
        return this.nomApellido1;
    }

    public void setNomApellido1(String nomApellido1) {
        this.nomApellido1 = nomApellido1;
    }

    public String getNomApellido2() {
        return this.nomApellido2;
    }

    public void setNomApellido2(String nomApellido2) {
        this.nomApellido2 = nomApellido2;
    }

    public String getNomNombre() {
        return this.nomNombre;
    }

    public void setNomNombre(String nomNombre) {
        this.nomNombre = nomNombre;
    }

    public BigDecimal getNumExpte() {
        return this.numExpte;
    }

    public void setNumExpte(BigDecimal numExpte) {
        this.numExpte = numExpte;
    }

    public String getTipoUsuario() {
        return this.tipoUsuario;
    }

    public void setTipoUsuario(String tipoUsuario) {
        this.tipoUsuario = tipoUsuario;
    }

    public EncuestaSem getEncuestaSem() {
        return this.encuestaSem;
    }

    public void setEncuestaSem(EncuestaSem encuestaSem) {
        this.encuestaSem = encuestaSem;
    }



    public long getId() {
        return id;
    }



    public void setId(long id) {
        this.id = id;
    }



    public long getEncuestaSemId() {
        return encuestaSemId;
    }



    public void setEncuestaSemId(long encuestaSemId) {
        this.encuestaSemId = encuestaSemId;
    }



    public long getSurveyId() {
        return surveyId;
    }



    public void setSurveyId(long surveyId) {
        this.surveyId = surveyId;
    }



    public static long getSerialversionuid() {
        return serialVersionUID;
    }


}

如何在Encuestado中设置实体encuestado_sem的encuesta_sem_id?

0 个答案:

没有答案