10

在对谷歌进行了一些研究之后,我没有找到任何有我的问题的人,这就是我在这里发布它的原因。在我的应用程序中,我有三个实体:用户(抽象)、客户、代理。客户和代理商扩展了用户。这是用户的代码:

@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 时从未遇到过这个问题。任何人都可以帮忙吗?

非常感谢 ;)

4

2 回答 2

5

我更好地阅读了 EBean 的文档和限制:http ://ebean-orm.github.io/docs/mapping/jpa/

仅单表继承

目前只支持单表继承。其他两种继承策略被视为增强请求,将在功能版本中引入。

于 2012-11-26T14:09:55.890 回答
1

如果您只想在您的CustomerAgency表中输入电子邮件和密码,您还可以查看@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;
...
}
于 2012-08-09T20:35:34.573 回答