@AssociationOverride和@joinColumn不起作用

时间:2012-03-06 10:10:39

标签: java hibernate jpa

我有两个同时拥有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 {..}

1 个答案:

答案 0 :(得分:1)

不知道你是否想过这个,但你应该在基类的区域字段上找到一个空的@JoinColumn(),这样就可以覆盖它。