@dms775 escreveu:
Boa noite pessoal, estou com um pequeno problema na hora de mapear uma tabela no meu código Java.
A tabela em questão possui 4 campos, duas Foreign Keys e outros dois campos date comuns, o problema é que a Primary Key desta tabela é composta por essas duas FKs, não estou sabendo exatamente como mapear essa PK no Java, dei uma estudada em @IdClass, fiz do jeito abaixo o mapeamento, mas acredito que não está correto.
O nome da tabela é TBCRNR_CLBR_PRFR_CRNA, os campos que são FK são CD_CLBR e CD_PRFR_CLBR, essas duas FK formam a PK.
Criei uma classe que mapeia as duas FK chamada PreferencesRidePK, com apenas os dois atributos mapeados para essas FKs, e criei um atributo do tipo PreferencesRidePK na classe CollaboratorPreferences, essa classe está mapeada para tabela TBCRNR_CLBR_PRFR_CRNA
import java.sql.Date; import javax.persistence.Column; import javax.persistence.Embeddable; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.ManyToOne; import javax.persistence.Table; import javax.validation.constraints.NotNull; /** * Classe CollaboratorPrefenrences mapeada com a colunas da tabela TBCRNR_CLBR_PRFR_CRNA * @author Luiz Henrique Dias Silva * */ @Entity @Embeddable @Table(name="TBCRNR_CLBR_PRFR_CRNA", schema="CARONAEASYADM") public class CollaboratorPreferences{ @Id @Column(name="CD_CLBR", columnDefinition = "NUMBER(19,0)") @NotNull private PreferencesRidePK PK; @Column(name="DH_CDTR_BASE", nullable=false) private Date registerDataTime; @Column(name="DH_MNTC_BASE", nullable=false) private Date supportDataTime; }
import java.io.Serializable; import java.util.Objects; import javax.persistence.Column; import javax.persistence.EmbeddedId; import javax.persistence.GeneratedValue; import javax.persistence.ManyToOne; /** * @author Luiz Henrique * */ public class PreferencesRidePK implements Serializable { /** * serialVersionUID */ private static final long serialVersionUID = 1L; @EmbeddedId @ManyToOne @GeneratedValue @Column(name = "CD_CLBR") private Collaborator collaboratorId; @EmbeddedId @ManyToOne @GeneratedValue @Column(name = "CD_PRFR_CLBR") private Preferences preferencesId; /** * @return Retorno do atributo collaboratorId */ public Collaborator getCollaboratorId() { return collaboratorId; } /** * @param Set * do atributo collaboratorId */ public void setCollaboratorId(Collaborator collaboratorId) { this.collaboratorId = collaboratorId; } /** * @return Retorno do atributo preferencesId */ public Preferences getPreferencesId() { return preferencesId; } /** * @param Set * do atributo preferencesId */ public void setPreferencesId(Preferences preferencesId) { this.preferencesId = preferencesId; } @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof PreferencesRidePK)) return false; PreferencesRidePK that = (PreferencesRidePK) o; return Objects.equals(getCollaboratorId(), that.getCollaboratorId()) && Objects.equals(getPreferencesId(), getPreferencesId()); } @Override public int hashCode() { return Objects.hash(getCollaboratorId(), getPreferencesId()); } }
Mensagens: 2
Participantes: 2