« Transfer の利用 | メイン | なんとか »

Transfer がうまく動かない

Transfer の迷宮をさまよい中。
とりあえず、以前書いた

<objectDefinitions>
 <package name="master">
  <!-- Category -->
  <object name="Category" table="CATEGORYMST">
   <id name="CategoryId" type="numeric" column="categoryid" />
   <property name="CategoryName" type="string" column="categoryname" />
   <onetomany name="CategoryItemLink" lazy="true">
    <link to="master.Item" column="CategoryId" />
    <collection type="struct">
      <key property="ItemId" />
    </collection>
   </onetomany>
  </object>
  <!-- Item -->
  <object name="Item" table="ITEMMST" sequence="ITEMMST_itemid_seq">
   <id name="ItemId" type="numeric" column="itemid" generate="false" />
   <property name="ItemName" type="string" column="itemname" />
   <property name="Price" type="numeric" column="price" />
   <manytoone name="ItemCategoryLink" lazy="true">
    <link to="master.Category" column="categoryid" />
   </manytoone>
  </object>
 </package>
</objectDefinitions>

は、だめのようだ。

<objectDefinitions>
 <package name="master">
  <!-- Category -->
  <object name="Category" table="CATEGORYMST">
   <id name="CategoryId" type="numeric" column="categoryid" />
   <property name="CategoryName" type="string" column="categoryname" />
   <onetomany name="CategoryItemLink" lazy="true">
    <link to="master.Item" column="CategoryId" />
    <collection type="struct">
      <key property="ItemId" />
    </collection>
   </onetomany>
  </object>
  <!-- Item -->
  <object name="Item" table="ITEMMST" sequence="ITEMMST_itemid_seq">
   <id name="ItemId" type="numeric" column="itemid" generate="false" />
   <property name="ItemName" type="string" column="itemname" />
   <property name="Price" type="numeric" column="price" />
  </object>
 </package>
</objectDefinitions>

外部参照なわけで、相互に参照するような設定にしてはいけない。
相互に参照しないと、双方から参照できないと思っていたら、そんなことはないようだ。

カートのデータをデータベースに登録するプログラムに変更しようとして、面倒な問題に直面。
カートのデータを全消去というコードがなんとも、面倒だ。

もちろん、従来のO-R マッピングを利用しない書き方に比べて面倒ということではなく、折角の Transfer が意味のないコードになってしまうということだ。
やっぱり、Transfer を意識したテーブル設計をしなければならない。

テーブル CARTDATA をヘッダと明細に分けよう。
さて、引き続き、さまようか。

トラックバック

このエントリーのトラックバックURL:
http://www.schwarzmond.info/mt/mt-tb.cgi/57

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2008年05月09日 09:53に投稿されたエントリーのページです。

ひとつ前の投稿は「Transfer の利用」です。

次の投稿は「なんとか」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。