4

我有一个扩展模型的用户类,以及两个我想扩展用户类的类。

用户.java:

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

    private static final long serialVersionUID = 1L;

    @Id
    public Long id;

...

驱动程序.java:

public class Driver extends User {
...

客户.java:

public class Customer extends User {
...

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

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

我一直无法弄清楚如何ebean在 Play 中使用它。我怎样才能做到这一点?

4

2 回答 2

3

这可能是 MappedSuperClass 注解的一个用例。有关文档,请参阅http://docs.oracle.com/javaee/5/api/javax/persistence/MappedSuperclass.html。据推测,这是由 Ebean 支持的,尽管缺乏关于它的文档。

于 2012-11-19T09:58:38.850 回答
3

为了保持User表格具体,您可以使用@Inheritance注释。请参阅Play Framework 2 Ebean 和 InheritanceType as JOINED以了解有关该问题的讨论。

也可以使用@OneToOne.

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

于 2012-11-19T15:54:03.060 回答