将Framework 2 Ebean和InheritanceType作为JOINED播放

时间:2012-08-08 20:06:18

标签: inheritance playframework-2.0 ebean joined-subclass

经过对谷歌的一些研究,我没有发现任何有我问题的人,这就是我在这里发布的原因。 在我的应用程序中,我有三个实体:用户(摘要),客户,代理商。 客户和代理商扩展用户。以下是用户代码:

@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这个问题。有人可以帮忙吗?

非常感谢;)

2 个答案:

答案 0 :(得分:6)

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

  

仅单表继承

     

目前只支持单表继承。另一个   两个继承策略被认为是增强请求和   将在功能发布中引入。

答案 1 :(得分: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;
...
}