我有两个同时拥有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 {..}
答案 0 :(得分:1)
不知道你是否想过这个,但你应该在基类的区域字段上找到一个空的@JoinColumn(),这样就可以覆盖它。