Ich muss eine schlecht gestaltete DB zuordnen. Und in der Klasse "Cote" gibt es eine zusammengesetzte PK mit FK-Feldern. Also habe ich ein Embedded-Objekt erstellt, um die Verwendung von abgeleiteten Entitäten mit IdClass zu vermeiden. Also habe ich versucht, dies:JPA HIBERNATE - Mapping einer Spalte zweimal (embeddedID und POJO)
@Entity
@Table(name="EVA_COTE")
public class Cote implements Serializable{
/**
*
*/
private static final long serialVersionUID = -3902534586060936635L;
@EmbeddedId
private CotePK cotePK;
@ManyToOne
@JoinColumn(name="Evaluation", referencedColumnName = "NUDOSS")
private Evaluation evaluation;
@ManyToOne
@JoinColumn(name="CRITERE", referencedColumnName = "CODE")
private Critere critere;
@ManyToOne
@JoinColumn(name="SEUIL", referencedColumnName = "CODE")
private Seuil seuil;
@Column(name="VALEUR", columnDefinition="Decimal(5,0)")
private Integer valeur;
@Column(name="OBSERVATIONS", length=500)
private String observations;
Mit folgendem EmbeddedId:
@Embeddable
public class CotePK implements Serializable{
/**
*
*/
private static final long serialVersionUID = 6835265195560184935L;
@Column(name="Evaluation", nullable=false)
private Integer evaluationId;
@Column(name="CRITERE", nullable =false)
private String critereId;
@Column(name="SEUIL", nullable=false)
private String seuilId;
Wie Sie kann ich sehen, verwenden Sie die Spalten Auswertung critère und Seuil einmal im embeddedId und einmal in der Klasse Cote. Und natürlich funktioniert es nicht und ich weiß nicht mehr, was ich versuchen soll. Gibt es eine Möglichkeit, JPA zu zwingen, die beiden Felder zu verknüpfen?