У меня есть 2 класса, у которых есть оба класса District, в существующей базе данных эти fk имеют другое имя. Я сделал @AssociationOverride, но получил ошибочное недопустимое имя столбца district_arrondisid.
Класс района
@Entity
@Table(name = "arrond")
@AttributeOverrides({
@AttributeOverride(name = "id", column = @Column(name = "arrondisid"))
})
public class District extends BasicString implements Comparable<District> {
}
Класс BasicIDDistrict
@IdClass(BasicIDDistrictPK.class)
@MappedSuperclass
@XmlRootElement
public abstract class BasicIDDistrict {
@Id
private int id;
@Id
@ManyToOne(fetch = FetchType.EAGER)
@Fetch(FetchMode.JOIN)
@JsonIgnore
private District district;
//getters and setters
}
Первый класс
@Entity
@Table(name = "tableA")
@AssociationOverrides({
@AssociationOverride(name = "district", joinColumns =
@JoinColumn(name = "arrondisid"))
})
@AttributeOverrides({
@AttributeOverride(name = "id", column =
@Column( name = "idA", insertable = false, updatable = false))
})
public class ClassA extends BasicIDDistrict {...}
Первый класс
@Entity
@Table(name = "tableB")
@AssociationOverrides({
@AssociationOverride(name = "district", joinColumns = @JoinColumn(name = "id_arrond"))
})
@AttributeOverrides({
@AttributeOverride(name = "id", column = @Column(name = "idB", insertable = false, updatable = false))
})
public class ClassB extends BasicIDDistrict {..}