0

Hibernate4.1.0とJPA2.0を使用しています

私は次のようなEntityクラスを持っています

@Entity
@Table(name = "V_EMPLOYEES")
public class Employee {

        @Id
        @Column(name = "EMPLOYEENUMBER")
        private String employeeNumber;

        @Column(name = "EMPLOYEENAME")
        private String employeeName;

        @Column(name = "DEPARTMENT")
        private String dept;

/*上記のゲッターとセッター*/

....。

@Table(name = "V_EMPLOYEES")これを使用してルックアップテーブルから取得し、V_EMPLOYEESと結合します。viewemployeenameemployeeno

私は上記を使用してデータテーブルに値を表示していましたが、これは正常に機能します。

employeenumberユーザーが[追加]ボタンをクリックしたときに新しい従業員レコードを作成し、ユーザーが、などemployeestatusを入力するポップアップダイアログを作成したいと思います。employeedepartment

クラスでを使用しているviewのでEntity、新しい従業員レコードを作成する場合、view更新可能なデータベースを作成する必要がありますか、それともテーブルへの新しいEntityクラス参照を作成する必要がありますか?Employeeビューの目的でデータテーブルの一部ではない列があり、レコードの作成または更新に使用したい場合はどうなりますか?

このためのベストアプローチとベストプラクティスは何ですか?

EntityManagerデータのフェッチと永続化(挿入、更新、削除) に使用しています

どんな助けも非常に魅力的です

4

1 に答える 1

1

これらの要件を考慮して、マップされたスーパークラスにプッシュアップされた共通フィールドを使用して、2 つの別個のエンティティを維持します。

@MappedSuperclass
public abstract class AbstractEmployee {
    @Id
    @Column(name = "EMPLOYEENUMBER")
    private String employeeNumber;

    @Column(name = "EMPLOYEENAME")
    private String employeeName;

    @Column(name = "DEPARTMENT")
    private String dept;

    // Constructor, getters, setters
}

@Entity
@Table(name = "V_EMPLOYEES")
public class ReadOnlyEmployee extends AbstractEmployee {
}

@Entity
@Table(name = "EMPLOYEES")
public class Employee extends AbstractEmployee {
    // Extra mappings here
}
于 2013-02-23T10:34:19.407 に答える