Pessoal,
Caiu um projeto em minhas mão que tenho que usar JPA e as tabelas já foram criadas e não podem ser modificadas.
Estou com o seguinte problema:
Já tentei de tudo e não consigo fazer o relacionamento funfar, segue as classes abaixo e o relacionamento é 1 para 1 nas colunas NUMEMP, TIPCOL e NUMCAD, entre as tabelas R034FUN e R034CPL.
Retirei algumas coisas do código que está mais abaixo como import comentários, hashcode e equals e os outros campos dessas tabelas.
Tabela: FichaBasicaColaboradorORM
Chave: FichaBasicaColaboradorORMId id;
Tabela: FichaBasicaColaboradorORMId
Campos chave: Short codigoEmpresa, Short tipoColaborador e Integer cadastroColaborador;
---------------------------------------------------------------------------------------------------------------
Tabela: FichaComplementarColaboradorORM
Chave: FichaComplementarColaboradorORMId id;
Tabela: FichaComplementarColaboradorORMId
Campos chave: Short codigoEmpresa, Short tipoColaborador e Integer cadastroColaborador; --------------------------------------------------------------------------------------------------------------- Classe FichaBasicaColaboradorORM@Entity
@Table(name = "R034FUN", schema = "PORTORH")
public class FichaBasicaColaboradorORM implements java.io.Serializable {
private static final long serialVersionUID = 5353177400521561904L;
private FichaBasicaColaboradorORMId id;
private FichaComplementarColaboradorORM fichaComplementarColaboradorORM;
@EmbeddedId
@AttributeOverrides( {
@AttributeOverride(name = "codigoEmpresa", column = @Column(name = "NUMEMP", nullable = false, precision = 4, scale = 0)),
@AttributeOverride(name = "tipoColaborador", column = @Column(name = "TIPCOL", nullable = false, precision = 1, scale = 0)),
@AttributeOverride(name = "cadastroColaborador", column = @Column(name = "NUMCAD", nullable = false, precision = 9, scale = 0)) })
public FichaBasicaColaboradorORMId getId() {
return this.id;
}
public void setId(FichaBasicaColaboradorORMId id) {
this.id = id;
}
@OneToOne(fetch = FetchType.LAZY, mappedBy = "fichaComplementarColaboradorORMid")
public FichaComplementarColaboradorORM getFichaComplementarColaboradorORM() {
return this.fichaComplementarColaboradorORM;
}
public void setFichaComplementarColaboradorORM(
FichaComplementarColaboradorORM fichaComplementarColaboradorORM) {
this.fichaComplementarColaboradorORM = fichaComplementarColaboradorORM;
}
}
@Embeddable
public class FichaBasicaColaboradorORMId implements java.io.Serializable {
private static final long serialVersionUID = -127453153916377361L;
private Short codigoEmpresa;
private Short tipoColaborador;
private Integer cadastroColaborador;
public FichaBasicaColaboradorORMId() {
}
public FichaBasicaColaboradorORMId(Short codigoEmpresa,
Short tipoColaborador, Integer cadastroColaborador) {
this.codigoEmpresa = codigoEmpresa;
this.tipoColaborador = tipoColaborador;
this.cadastroColaborador = cadastroColaborador;
}
@Column(name = "NUMEMP", nullable = false, precision = 4, scale = 0)
public Short getCodigoEmpresa() {
return this.codigoEmpresa;
}
public void setCodigoEmpresa(Short codigoEmpresa) {
this.codigoEmpresa = codigoEmpresa;
}
@Column(name = "TIPCOL", nullable = false, precision = 1, scale = 0)
public Short getTipoColaborador() {
return this.tipoColaborador;
}
public void setTipoColaborador(Short tipoColaborador) {
this.tipoColaborador = tipoColaborador;
}
@Column(name = "NUMCAD", nullable = false, precision = 9, scale = 0)
public Integer getCadastroColaborador() {
return this.cadastroColaborador;
}
public void setCadastroColaborador(Integer cadastroColaborador) {
this.cadastroColaborador = cadastroColaborador;
}
}
@Entity
@Table(name = "R034CPL", schema = "PORTORH")
public class FichaComplementarColaboradorORM implements java.io.Serializable {
private static final long serialVersionUID = 1753574657071284503L;
private FichaComplementarColaboradorORMId id;
private FichaBasicaColaboradorORM fichaBasicaColaboradorORM;
@EmbeddedId
@AttributeOverrides( {
@AttributeOverride(name = "codigoEmpresa", column = @Column(name = "NUMEMP", nullable = false, precision = 4, scale = 0)),
@AttributeOverride(name = "tipoColaborador", column = @Column(name = "TIPCOL", nullable = false, precision = 1, scale = 0)),
@AttributeOverride(name = "cadastroColaborador", column = @Column(name = "NUMCAD", nullable = false, precision = 9, scale = 0)) })
public FichaComplementarColaboradorORMId getId() {
return this.id;
}
public void setId(FichaComplementarColaboradorORMId id) {
this.id = id;
}
@OneToOne(fetch = FetchType.LAZY)
@JoinColumns({
@JoinColumn(name="NUMEMP", referencedColumnName="NUMEMP"),
@JoinColumn(name="TIPCOL", referencedColumnName="TIPCOL"),
@JoinColumn(name="NUMCAD", referencedColumnName="NUMCAD")
})
public FichaBasicaColaboradorORM getFichaBasicaColaboradorORM() {
return this.fichaBasicaColaboradorORM;
}
public void setFichaBasicaColaboradorORM(FichaBasicaColaboradorORM fichaBasicaColaboradorORM) {
this.fichaBasicaColaboradorORM = fichaBasicaColaboradorORM;
}
}
@Embeddable
public class FichaComplementarColaboradorORMId implements java.io.Serializable {
private static final long serialVersionUID = -3934415789494260871L;
private Short codigoEmpresa;
private Short tipoColaborador;
private Integer cadastroColaborador;
public FichaComplementarColaboradorORMId() {
}
public FichaComplementarColaboradorORMId(Short codigoEmpresa,
Short tipoColaborador, Integer cadastroColaborador) {
this.codigoEmpresa = codigoEmpresa;
this.tipoColaborador = tipoColaborador;
this.cadastroColaborador = cadastroColaborador;
}
@Column(name = "NUMEMP", nullable = false, precision = 4, scale = 0)
public Short getCodigoEmpresa() {
return this.codigoEmpresa;
}
public void setCodigoEmpresa(Short codigoEmpresa) {
this.codigoEmpresa = codigoEmpresa;
}
@Column(name = "TIPCOL", nullable = false, precision = 1, scale = 0)
public Short getTipoColaborador() {
return this.tipoColaborador;
}
public void setTipoColaborador(Short tipoColaborador) {
this.tipoColaborador = tipoColaborador;
}
@Column(name = "NUMCAD", nullable = false, precision = 9, scale = 0)
public Integer getCadastroColaborador() {
return this.cadastroColaborador;
}
public void setCadastroColaborador(Integer cadastroColaborador) {
this.cadastroColaborador = cadastroColaborador;
}
}
É isso ai pessoal se puderem me ajudar, enviar exemplos ou dicas eu agradeço.
Abraço...