- PR -

EJB2.0のCMRとRDBの結合キーについて

1
投稿者投稿内容
matu
ベテラン
会議室デビュー日: 2002/09/01
投稿数: 95
お住まい・勤務地: 東京
投稿日時: 2003-05-16 21:38
 お世話になります。

 色々調べてみたのですが情報不足で理解できない内容がございます。
実際に定義された方などがおりましたらご教授下さい。

 以下の様なデータベース定義についてEJB2.0のCMRを利用して作成
しようと思ったのですが、少し疑問点がございます。

<A> <-個々のPC等を管理するテーブル
機器ID
機器名

<B> <-個々の機器のIPを管理するテーブル
機器ID
ネットワークID
クライアントIPアドレス

<C> <-ネットワークセグメントを定義するテーブル
ネットワークID
ネットワークアドレス
ネットマスク

※機器「A」は複数のIP「B」を持つ事ができます。



 例えばこの時「B」は「機器ID」「ネットワークID」の結合キーで
タプルを一意に認識するとします。その時EJB実装へ書くプログラムは、

1、「B」には結合キー用のprimary keyクラスを用意する。
2、例えば「Bejb」を生成する場合、「Aejb」の中でcreateBなどの
  メソッドを定義して自分の中で機器IDおよびネットワークIDの
  結合キー用の値を「Bejb」のcreateEjbに渡す。
3、各キーの値の生成等は自分でprimary key generater等のEJBを
  作りコントロールする。


 この時ejb-jar.xmlやデータベース定義用のxml定義ファイル等を
どのように書けばよいのでしょうか?特に結合キーの部分をどの様
に定義して良いかがわかりません。
 例えばejb-jar.xmlの
<cmp-field><field-name>?</field-name></cmp-field>
<primkey-field>?</primkey-field>
 結合キーの部分をどの様に書くのでしょうか・・
 他にはjbosscmp-jdbc.xml(jbossの場合)の
<cmp-field><field-name>?</field-name><column-name>?</column-name><jdbc-type>?</jdbc-type><sql-type>?</sql-type></cmp-field>
 などでjdbcタイプやsqlタイプはどうなるのでしょうか?

 さらに「A」「B」「C」と3つのテーブルが結合しているのですが、
その様な定義もEJB2.0のCMRでは可能なのでしょうか?つまり
「A」対「B」=1対多
「B」対「C」=多対1

 そもそもRDBとEJBを同等のものとして考えてデータベースの設計や
処理の設計を考えている事が間違っているのであればご指摘下さい。

 何か良い情報や参考ページなどをご存知であればご教授下さい。
よろしくお願いします。


[ メッセージ編集済み 編集者: matu 編集日時 2003-05-17 18:26 ]
1

スキルアップ/キャリアアップ(JOB@IT)