Как переопределить атрибут из встроенного столбца суперкласса - PullRequest
0 голосов
/ 06 июля 2018

Я пытаюсь переопределить свойство встроенного столбца, существующего в суперклассе сущности.

Мои сущности выглядят так:

@Embeddable
public class Key {
    @Column
    private String a,

    @Column
    private String b
}

@MappedSuperclass
public abstract class Superclass {

    @EmbeddedId
    private Key key;
}

@Entity
@Table(name = "my_entity")
@AttributeOverride(name = "b", column = @Column(name="renamed_b"))
public class MyEntity extends Superclass {

}

Я пытался использовать AttributeOverride в MyEntity, но он ничего не делает.

Это сработало бы, если бы я переместил аннотацию AttributeOverride во встроенное поле, но я не могу изменить суперкласс.

Есть ли какое-нибудь решение?

1 Ответ

0 голосов
/ 06 июля 2018

Смотрите, внимательно прочитайте документацию:

Для переопределения отображений на нескольких уровнях встраивания, точка (".") Форма обозначения должна использоваться в элементе имени, чтобы указать атрибут во встроенном атрибуте.

Имя "b" неверно. Вы должны использовать "key.b"

@Entity
@Table(name = "my_entity")
@AttributeOverride(name = "key.b", column = @Column(name="renamed_b"))
public class MyEntity extends Superclass 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...