Играть в Framework 2 Ebean и InheritanceType как СОЕДИНЕННЫЕ

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

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

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

    @NotNull
    public String password;

}

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

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

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

2 ответа

Решение

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

Наследование только одной таблицы

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

Если вы просто хотите адрес электронной почты и пароль в вашем 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;
...
}
Другие вопросы по тегам