我正在使用 Playframework 2.1.0 构建一个简单的 Web 应用程序。
现在我得到一个问题:
我的数据库中有大约 20 个表,名称如 AB、DF、HD、ER 等。由于某些原因,它们的表格式完全相同,我不能只使用一张表来存储它们。我将一次性使用一张特定的表格。
那么我可以只写一个模型类来指示这些表格的表格格式吗?如何?
如果可以,我应该如何编写代码以将模型类动态映射到数据库中的一个特定表?
我正在使用 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
}
所以所有的字段映射都应该被继承。希望这可以帮助