多个表在play框架中共享一个模型类

时间:2013-08-21 06:19:56

标签: java playframework playframework-2.0 playframework-2.1 ebean

我使用Playframework 2.1.0构建一个简单的Web应用程序。

现在我得到一个问题:

我的数据库中有大约20个表,其中包含AB,DF,HD,ER等名称。由于某些原因,它们的表格格式完全相同,我不能只使用一个表来存储它们。我将一次使用一个特定的表。

那么我可以编写一个模型类来指示这些表的表格格式吗?怎么样?

如果可以,我应该如何编写代码以将模型类动态映射到我的数据库中的一个特定表?

1 个答案:

答案 0 :(得分:3)

我认为您可以编写一个包含所有列映射的抽象超类:

@MappedSuperclass
public abstract class AbstractModel {
    protected int id;
    protected String property1;

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ID_SEQ")
    @Column(name = "id")
    public int getId() {
        return id;
    }

    public void setId(int id) {
         this.id = id;
    }

    @Column(name = "prop1")
    public String getProperty1() {
        return property1;
    }

    public void setProperty1(String property1) {
         this.property1 = property1;
    }
}

然后编写具体模型:

@Entity
@Table(name = "AB")
public class AB extends AbstractModel {
    //some additional fields if you wish
    private String property2;

    @Column(name = "prop2")
    public String getProperty2() {
        return property2;
    }

    public void setProperty2(String property2) {
         this.property2 = property2;
    }
   //additional code here
}

所以所有的字段映射都应该继承。 希望这有帮助