【发布时间】:2016-09-06 18:06:05
【问题描述】:
我必须映射一个设计糟糕的数据库。在“cote”类中,有一个带有 FK 字段的组合 PK。所以我做了一个可嵌入的,以避免使用带有 IdClass 的派生实体。所以我尝试了这个:
@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;
使用以下 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;
如您所见,我在 EmbeddedId 和 Cote 类中使用了评估标准和 seuil 列一次。当然它不起作用,我不知道该尝试什么了。有没有办法强制 JPA 链接这两个字段?
【问题讨论】:
标签: java hibernate jpa mapping