经过对谷歌的一些研究,我没有发现任何有我问题的人,这就是我在这里发布的原因。 在我的应用程序中,我有三个实体:用户(摘要),客户,代理商。 客户和代理商扩展用户。以下是用户代码:
@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这个问题。有人可以帮忙吗?
非常感谢;)
答案 0 :(得分:6)
我更好地阅读了EBean的文档和限制:http://ebean-orm.github.io/docs/mapping/jpa/
仅单表继承
目前只支持单表继承。另一个 两个继承策略被认为是增强请求和 将在功能发布中引入。
答案 1 :(得分:1)
如果您只想在Customer
和Agency
表中添加电子邮件和密码,还可以查看@Embedded
/ @Embeddable
注释:
@Embeddable
public class User {
@Column(unique = true)
@NotNull
@Email
public String email;
@NotNull
public String password;
}
客户类(代理商类似):
@Entity
public class Customer {
...
@Embedded
public User user;
...
}