Подтвердить что ты не робот

Play Framework 2 Ebean и InheritanceType as JOINED

После некоторых исследований в Google я не нашел никого, у кого есть моя проблема, почему я размещаю его здесь. В моем приложении у меня есть три объекта: Пользователь (аннотация), Клиент, Агентство. Клиент и Агентство расширяют пользователя. Вот код пользователя:

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public abstract class User extends AbstractModel {

    @Column(unique = true)
    @NotNull
    @Email
    public String email;

    @NotNull
    public String password;

}

Проблема заключается в том, что сгенерированная схема создает только одну таблицу с полями User, Customer и Agency, которая обычно является поведением с InheritanceType.SINGLE_TABLE (по умолчанию).

Есть ли проблема с использованием аннотации Ebean и @Inheritance? Я попробовал InheritanceType.TABLE_PER_CLASS, он тоже не работал. У меня никогда не было этой проблемы с использованием JPA. Может ли кто-нибудь помочь?

Спасибо большое;)

4b9b3361

Ответ 1

Я лучше прочитал документацию по EBe и ограничениям: http://ebean-orm.github.io/docs/mapping/jpa/

Только однонамерное наследование

В настоящее время поддерживается только однонаправленное наследование. Другой две стратегии наследования рассматриваются как запросы на повышение и будут представлены в выпуске функций.

Ответ 2

Если вы просто хотите получать электронную почту и пароль в таблицах Customer и Agency, вы можете также просмотреть аннотации @Embedded/@Embeddable:

@Embeddable
public class User  {

    @Column(unique = true)
    @NotNull
    @Email
    public String email;

    @NotNull
    public String password;

}

И класс Customer (аналогичный для агентства):

@Entity
public class Customer  {

...

    @Embedded
    public User user;
...
}