JPA @ManyToOne сопоставить несколько полей, указывающих один и тот же столбец

Мне нужно сопоставить два поля от сущности (в этом примере, сущности 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 ответ

Решение

@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; 
Другие вопросы по тегам