我有以下数据库架构
表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?