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. Может ли кто-нибудь помочь?
Спасибо большое;)
Ответы
Ответ 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;
...
}