1

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

现在我得到一个问题:

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

那么我可以只写一个模型类来指示这些表格的表格格式吗?如何?

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

4

1 回答 1

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
}

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

于 2013-08-21T07:31:37.427 回答