JPA @ManyToOne映射指向同一列的多个字段

时间:2017-10-02 15:58:07

标签: java jpa many-to-one

我需要从实体(在此示例中为实体 Colectivo )中映射两个字段,这两个字段引用相关实体 TipoDominio 上的相同列。 有可能吗?

Colectivo.java

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({@JoinColumn(name = "TDM_TAC", referencedColumnName = "IDETDM")})
private TiposDominioMantenimiento tdmTac;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({@JoinColumn(name = "TDN_ECO", referencedColumnName = "IDETDM")}) 
private TiposDominioMantenimiento tdnEco; 

TipoDominio.java

@Id
@Column(name="IDETDM")
private BigDecimal ideTdm;

如果没有,我该如何指定? 非常感谢:)

1 个答案:

答案 0 :(得分:1)

仅当您的相关实体具有复合/多个密钥时才应使用

@JoinColumns

正如@crizzis所提到的,每个属性都应该有一个@JoinColumn

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "TDM_TAC")
private TiposDominioMantenimiento tdmTac;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "TDN_ECO") 
private TiposDominioMantenimiento tdnEco;