1

Playframework 2.1.0 を使用して単純な Web アプリケーションを構築しています。

ここで、1 つの質問があります。

データベースには、AB、DF、HD、ER などの名前のテーブルが約 20 個あります。何らかの理由で、それらのテーブル形式はまったく同じであり、1 つのテーブルだけを使用してそれらを格納することはできません。一度に特定のテーブルを使用します。

では、これらのテーブルのテーブル形式を示すモデル クラスを 1 つだけ記述できますか? どのように?

可能であれば、モデル クラスをデータベース内の 1 つの特定のテーブルに動的にマップするコードをどのように記述すればよいですか?

4

1 に答える 1

3

そのようなすべての列マッピングを持つ1つの抽象スーパークラスを作成できると思います:

@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 に答える