hibernateを使用し、antを使用してtomcatにデプロイするWebアプリがあります。すべてのマッピング値を使用してソースディレクトリにhibernate.cfg.xmlを作成しました。
私のアプリにはShoppingCart、CartItem、ItemForSaleクラスがあります。データベーステーブルで表されるCartItemクラスとItemForSaleクラスの関係をマッピングする必要があります。以下に示すように解決しようとしました。これが正しい方法かどうかはわかりません。 ..この件に関してあなたのアドバイス/意見をお願いします..助けてください..
CartItemには、ItemForSaleフィールドと数量があります。
class CartItem{
ItemForSale item;
int quantity;
...
}
class ItemForSale{
String name;
double price;
}
これら両方のクラスのインスタンスがいくつかあるとします。
saleitem1 = new ItemForSale("pizza",20.0);
saleitem2 = new ItemForSale("pastry",10.0);
saleitem3 = new ItemForSale("cake",30.0);
cartitem1 = new CartItem(saleitem1,1);
cartitem2 = new CartItem(saleitem1,2);
cartitem3 = new CartItem(saleitem2,1);
カートアイテムには、一度に複数のセールアイテムを含めることはできません。
下の図にマッピングを示しました。緑の線は有効な関係を示し、赤の線はこれら2つのセット間の無効な関係を示しています。
このことから、 CartItemとItemForSaleの間には多対1の関係があると推測します。したがって、CartItem.hbm.xmlファイルに次のように記述しなければなりません。
<class name="shop.cart.CartItem" table="CARTITEM">
<id name="cartItem_id" column="CARTITEM_ID" type="long">
<generator class="native"/>
</id>
<property name="quantity" type="int" column="QUANTITY" />
<many-to-one name="saleitem" class="shop.domain.ItemForSale" column="ITEM_FOR_SALE_ID" lazy="false" />
</class>
これは正しい表現ですか?それとも、私がそれを解決した方法に何か問題がありますか?
ありがとう
マーク