В базе имеются две таблицы, users и employers. Во второй есть поле, являющееся внешним ключом на основной ключ первой. В бизнес-логике приложения однако User должен быть абстрактным классом, а Employer должен от него наследоваться. Возникает вопрос - как это сделать с помощью аннотаций? Пробовал варианты
| Код | @MappedSuperclass @Table(name = "users") @AttributeOverride(name = "id", column = @Column(name = "user_id")) public abstract class User extends AbstractEntity {...}
@Entity @Table(name = "employers") @Inheritance(strategy = InheritanceType.JOINED) @AttributeOverrides({ @AttributeOverride(name = "id", column = @Column(name = "employer_id")) // @AttributeOverride(name = "login", column = @Column(table = "users", name = "login")), // @AttributeOverride(name = "passwordHash", column = @Column(table = "users", name = "pwd_md5")), // @AttributeOverride(name = "role", column = @Column(table = "users", name = "access_level")) }) public class Employer extends User {...}
|
Работоспособности добиться не удалось :( Пробовал также делать с @SecondaryTable (в комментариях видны оверрайды полей для этой аннотации) - тоже не работает. Как реализовать наследование, описанное в первом параграфе? |