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

Java 在play框架中,多个表共享一个模型类,java,playframework,playframework-2.0,playframework-2.1,ebean,Java,Playframework,Playframework 2.0,Playframework 2.1,Ebean,我正在使用Playframework 2.1.0构建一个简单的web应用程序 现在我有一个问题: 我的数据库中有大约20个表,它们的名称像AB、DF、HD、ER等。由于某些原因,它们的表格式完全相同,我不能只使用一个表来存储它们。我只会在一次中使用一个特定的表 那么,我可以只编写一个模型类来指示这些表的表格式吗?怎么做 如果可以,我应该如何编写代码来动态地将模型类映射到数据库中的一个特定表?我认为您可以编写一个包含所有列映射的抽象超类,如下所示: @MappedSuperclass public

我正在使用Playframework 2.1.0构建一个简单的web应用程序

现在我有一个问题:

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

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


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

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

@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
}
因此,所有字段映射都应该被继承。 希望这有帮助