помочь определить связь между объектами базы данных (для отображения в спящем режиме) - PullRequest
0 голосов
/ 05 июля 2011

У меня есть веб-приложение, в котором я использую hibernate и развертываю на tomcat с помощью ant. Я создал 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);

Cartitem не может содержать более одного Saleitem одновременно,

Я показал отображения на диаграмме ниже. Зеленые линии показывают действительные отношения, в то время как красная линия показывает недопустимое отношение между этими двумя наборами.

relation between sets

Из этого я заключаю, что между CartItem и ItemForSale.So существует отношение много-к-одному .y Файл 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>

Это правильное представление?Или что-то не так с тем, как я с этим справился?

спасибо

mark

1 Ответ

0 голосов
/ 05 июля 2011

выглядит правильно ... вы сделали однонаправленное отображение ...

вы также можете сделать двунаправленное отображение (мало что меняет, но дает вам доступ ко всем элементам, связанным с корзиной.

...