0

さまざまなテーブルからさまざまなフィールドを取得する単一の選択用のマッピング XML を作成する方法を理解しようとしています。

以下の SQL を参照してください (簡単にするために、各テーブルのすべてのフィールドを取得します)。

SELeCT a.*, b.*, c.*, d.*
from
    table1 a,
    table2 b,
    table3 c,
    table4 d
where
    a.id = b.id
    and a.id = c.id (+)
    and a.code = d.code (+)
    and a.id = 34

テーブルの定義は次のとおりです。

私のメイン テーブルは table1 で、table2 と 1 対 1 の関係があります。table1 には、table3 と table4 に対応するレコードがある場合とない場合があります。テーブル 1、2、および 4 の id 列の値は同じです。(たとえば、table1.id = 34 で、table1 の table3 と 4 にレコードがある場合、table3.id と table4.id = 34)

table1 (
    id int,
    code varchar2(255)
)

table2 (
    id int,
    some_column1 varchar2(255)
    some_column2 varchar2(255)
)

table3 (
    code varchar2(255),
    description varchar(512)
)

table3 (
    id int,
    url varchar(1024)
)

jboss.org サイトで HQL 入門書と基本的な o/R を読んでいますが、上記の SQL の休止状態マッピング XML を作成する方法についてはあまりわかりません。

ありがとう!:)

4

1 に答える 1

0

Hibernateの有効なXML マッピングを記述する最良の方法は、このチュートリアルを読むことです。

読者が焦点を当てているいくつかのことは次のとおりです。

  • XML クラス マッピング
  • 関係の種類

あなたの例のように、4 つのテーブルがあります。何らかの方法で接続する必要があります。

したがって、最初のステップは、すべてのテーブルの POJO クラスを作成し、単純なプロパティの XML マッピングを作成することです。

モデルは次のようになります

class A {
  int id; 
  String code;
  B b
  C c;
  D d;
} 

class B {
  int id;
}

class C {
  int id;
}

class D {
  String code;
}

マッピング

AとBの間をつなぐ

<one-to-one name="b" class="B">

次に、テーブル C (a.id = b.id(+)) をマップします。

<many-to-one name="c" class="C"/>

そして、テーブル D (a.code = c.code(+)) をマッピングします。

<many-to-one name="d" class="D" column="CODE"/>

于 2012-12-10T01:10:01.973 に答える