0

休止状態のマッピング:

私は以下の2つのクラスを持っています:

class Employee{
    int empId;
    string name;
    float salary;
    Department dept;
    // ... getters and setters....
}


class Department{
    int deptId;
    string deptName;
    // ....and other details, getter and setters..
}

今、私は従業員専用のテーブルを持っています

table Employee(EmpId number, Name varchar, salary number,deptId number)

Department部門IDを持つ従業員データを保存することにのみ関心があるため、テーブルを保持する必要はありません。

多対 1、1 対1、1 対多を探していますが、すべて個別hibernate mappingに格納する必要があります。dept datatable

私の質問:単純なマッピング ファイルのみを保持し、どこからアクセスできるかという方法はありますdeptIdか?Department classEmployee mapping

ありがとう

4

5 に答える 5

1

componentDepartment をxml マッピング ( http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/components.html ) を使用する場合はエンティティとして定義する必要があり、@Embedded/@Embeddableアノテーションを使用する場合はエンティティとして定義する必要があります (§2.2 .2.4 in http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/#entity-mapping-property )

于 2013-02-27T15:36:09.777 に答える
0

整数としてマップするだけです。テーブルのDEPT_ID列に引き続きマップできます。EMPLOYEE

class Employee {
    ...

    @Column(name = "DEPT_ID")
    Integer deptId;

    ... getters and setters....
}
于 2013-02-27T15:44:32.520 に答える
0

フィールドdeptIdに関連付けを行わないでください。給与フィールドの場合と同様に、 deptIdを単純な属性として扱います

于 2013-02-27T15:35:21.677 に答える
0

ストア deptId だけが必要な場合は、部門クラスを作成する必要はないと思います。Hibernate では、エンティティ クラスは Database の Table から表現されるためです。

そして、実践できるかもしれませんが、@EntityDepartmentクラスからアノテーションを削除しようとすると、 @Entityクラスは、クラスがデータベースのテーブルになるためのアノテーションです。

私の悪い英語でごめんなさい。

于 2013-02-27T15:35:22.583 に答える
0
Can I access dept Id from `Department` class in Employee mapping?

プログラムを停止して再び開始したと想像してみてくださいdepartment iddata of that Class

いいえ、mappingそのためには、対応する列を作成する必要がありますDB

于 2013-02-27T15:41:01.150 に答える