Java 播放框架-如何从超类继承?

Java 播放框架-如何从超类继承?,java,playframework,playframework-2.0,ebean,Java,Playframework,Playframework 2.0,Ebean,我有一个用户类,它扩展了模型,还有两个类,我想扩展用户类 User.java: @Entity @Table(name = "users") public class User extends Model implements RoleHolder { private static final long serialVersionUID = 1L; @Id public Long id; ... public class Driver extends User {

我有一个用户类,它扩展了模型,还有两个类,我想扩展用户类

User.java:

@Entity
@Table(name = "users")
public class User extends Model implements RoleHolder {

    private static final long serialVersionUID = 1L;

    @Id
    public Long id;

...
public class Driver extends User {
...
public class Customer extends User {
...
Driver.java:

@Entity
@Table(name = "users")
public class User extends Model implements RoleHolder {

    private static final long serialVersionUID = 1L;

    @Id
    public Long id;

...
public class Driver extends User {
...
public class Customer extends User {
...
Customer.java:

@Entity
@Table(name = "users")
public class User extends Model implements RoleHolder {

    private static final long serialVersionUID = 1L;

    @Id
    public Long id;

...
public class Driver extends User {
...
public class Customer extends User {
...
编辑 所有这三个实体都需要直接访问。换句话说,我有用户、客户和司机;客户和驱动程序恰好共享用户的所有属性。因此,我需要一个有效的用户实体以及客户和驱动程序

我需要能够获得所有用户(包括客户和司机)的列表


我还没有弄清楚如何在使用
ebean
的情况下实现这一点。我该怎么做

这可能是MappedSuperClass注释的一个用例。有关文档,请参阅。据推测,这是由Ebean支持的,尽管缺少关于它的文档。

为了使
用户表保持具体,您可以使用
@heritation
注释。请参阅以了解有关该问题的讨论

还可以使用
@OneToOne
手动连接驾驶员和客户的辅助表


使用
@OneToOne
也将有利于组合而不是继承,这被认为是一种良好的做法。

对不起,到底是什么问题?您不能直接使用用户是什么意思?谢谢Samuel,不幸的是,MappedSuperClass不允许用户实体存在。如果我只需要访问子类,这是一个完美的解决方案!然后有一个
AbstractUser
超类(MappedSuperClass)和
User
以及其他继承自它的类--我不清楚为什么绝对需要有
User
这样的超类。你所建议的AbstractUser类的问题是,如果我想要一个完整的用户列表,我必须执行三个查询,一个用于用户,一个用于客户,一个用于驾驶员。在我的模型中,客户是用户,驱动程序是用户。我为这种情况添加了一个新的答案:-)谢谢Samuel,在找到
@OneToOne
之前,我尝试了
@heritation
轨迹。我走了那条路,我的问题解决了。谢谢