@AssociationOverride и @joinColumn не работают - PullRequest
1 голос
/ 06 марта 2012

У меня есть 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 {..}

1 Ответ

1 голос
/ 08 октября 2012

Не знаю, понимали ли вы когда-нибудь это, но вам нужно пустую @JoinColumn () в поле района в базовом классе, чтобы оно могло что-то переопределить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...