请你的帮助.....
我通过JPA工具获得了JPA模型,从表中生成实体。平台Hibernate(JPA 2.1) 我有两张桌子:PerTipoProfesion和PerPersona。 JPA工具,使用复合id
制作表PerTipoProfesion和PerPersona@Embeddable
public class PerTipoProfesionId implements java.io.Serializable {
private long idTipoProfesion;
private long idEmpresa;
.....
@Column(name = "id_tipo_profesion", nullable = false)
public long getIdTipoProfesion() {
return this.idTipoProfesion;
}
public void setIdTipoProfesion(long idTipoProfesion) {
this.idTipoProfesion = idTipoProfesion;
}
@Column(name = "id_empresa", nullable = false)
public long getIdEmpresa() {
return this.idEmpresa;
}
}
@Entity
@Table(name = "per_tipo_profesion", schema = "public")
public class PerTipoProfesion implements java.io.Serializable {
private PerTipoProfesionId id;
private EmpEmpresa empEmpresa;
private String descripcion;
private String naturalJuridica;
private Set<PerPersona> perPersonas = new HashSet<PerPersona>(0);
public PerTipoProfesion() {}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "id_empresa", nullable = false, insertable = false, updatable = false)
public EmpEmpresa getEmpEmpresa() {
return this.empEmpresa;
}
@OneToMany(fetch = FetchType.LAZY, mappedBy = "perTipoProfesion")
public Set<PerPersona> getPerPersonas() {
return this.perPersonas;
}
.......
}
@Embeddable
public class PerPersonaId implements java.io.Serializable {
private long codPersona;
private long idEmpresa;
....
}
@Entity
@Table(name = "per_persona", schema = "public")
public class PerPersona implements java.io.Serializable {
private PerPersonaId id;
private EmpEmpresa empEmpresa;
private OrgOrganizacionGeografica orgOrganizacionGeografica;
private OrgPais orgPais;
private PerActividadEconomica perActividadEconomica;
private PerTipoEstadoCivil perTipoEstadoCivil;
private PerTipoProfesion perTipoProfesion;
......
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({
@JoinColumn(name = "id_tipo_profesion", referencedColumnName = "id_tipo_profesion", nullable = false, insertable = false, updatable = false),
@JoinColumn(name = "id_empresa", referencedColumnName = "id_empresa", nullable = false, insertable = false, updatable = false) })
public PerTipoProfesion getPerTipoProfesion() {
return this.perTipoProfesion;
}
}
PerTipoProfesion perTipoProfesion = new PerTipoProfesion();
PerTipoProfesionId perTipoProfesionId = new PerTipoProfesionId();
perTipoProfesionId.setIdEmpresa(idEmpresaNueva);
perTipoProfesionId.setIdTipoProfesion(1L);
perTipoProfesion.setId(perTipoProfesionId);
perTipoProfesion.setDescripcion("OTROS");
perTipoProfesion.setNaturalJuridica("J");
perTipoProfesionServices.addObjeto(perTipoProfesion);
这对于perTipoProfesion持续存在于数据库中
PerPersonaId perPersonaId = new PerPersonaId();
perPersonaId.setCodPersona(1L);
perPersonaId.setIdEmpresa(idEmpresaNueva);
PerPersona perPersona = new PerPersona();
perPersona.setId(perPersonaId);
perPersona.setPerTipoProfesion(perTipoProfesion);
perPersonaServices.addObjeto(perPersona);
我试图坚持perPersona错误
«id_tipo_profesion»中提琴限制不为空