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;