jpa AttributeOverride в нескольких вложенных свойствах - PullRequest
2 голосов
/ 09 декабря 2011

Может ли кто-нибудь помочь мне установить правильный способ переопределения имени столбца в расширенной сущности.

Embedeable:

@Embedable
Email
@Column(name = "email_adress")
private string email;

Родительский объект:

@Entity
AddressBook
@Embedded
@AttributeOverrides( {
        @AttributeOverride(name="email", column = @Column(name="email_address") )
} )
private Email email

Удлинитель:

@Entity
@AttributeOverrides( {
        @AttributeOverride(name="email", column = @Column(name="home_email") )
} )
DeluxAddressBook extends AddressBook
@Embeded 
@AttributeOverrides( {
        @AttributeOverride(name="email", column = @Column(name="work_email") )
} )
private Email workEmail;

В последнем объекте я получаю workEmail, сопоставленный столбцу "work_email", который в порядке, однако home_email сопоставлен столбцу "email_address", определенному первоначально в встраиваемом объекте. Он должен быть сопоставлен со столбцом «home_email».

Я пытался без успеха:

@AttributeOverride(name="email.email", column = @Column(name="home_email") )

Спасибо за вашу помощь, Jess

1 Ответ

0 голосов
/ 27 марта 2012

В последнем сопоставлении ваше свойство имени AttributeOverride определяет сопоставление для электронной почты, которое является полем из базового класса. Второе отображение должно быть для workEmail, а не для электронной почты С этим изменением вы сможете достичь желаемого результата.

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