Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 帮助识别数据库实体之间的关系(用于hibernate映射)_Java_Hibernate_Relation - Fatal编程技术网

Java 帮助识别数据库实体之间的关系(用于hibernate映射)

Java 帮助识别数据库实体之间的关系(用于hibernate映射),java,hibernate,relation,Java,Hibernate,Relation,我有一个web应用程序,其中我使用hibernate并使用ant在tomcat上部署。我在源目录中创建了一个hibernate.cfg.xml,其中包含所有映射值 我的应用程序有一个ShoppingCart、CartItem和ItemForSale类。我需要映射由数据库表表示的CartItem和ItemForSale类之间的关系。我尝试如下所示解决此问题。我不确定这是否正确。。 我想听听你对这件事的意见请帮忙 CartItem具有ItemForSale字段和quantity class Cart

我有一个web应用程序,其中我使用hibernate并使用ant在tomcat上部署。我在源目录中创建了一个hibernate.cfg.xml,其中包含所有映射值

我的应用程序有一个ShoppingCart、CartItem和ItemForSale类。我需要映射由数据库表表示的CartItem和ItemForSale类之间的关系。我尝试如下所示解决此问题。我不确定这是否正确。。 我想听听你对这件事的意见请帮忙

CartItem具有ItemForSale字段和quantity

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

我在下图中显示了映射。绿线表示有效关系,而红线表示这两个集合之间的无效关系

由此,我推断CartItem和ItemForSale之间存在多对一的关系

<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>

这是正确的表述吗?还是我的解决方法有问题

谢谢


标记看起来正确。。。您已经完成了单向映射


您还可以进行双向映射(虽然变化不大,但它允许您访问与购物车相关的所有项目。

您不使用注释有什么原因吗?感谢您的回答..但是我不必向ItemForSale类添加cartitem字段吗?或者我可以只在映射文件中进行此操作而不必触碰代码吗?是的,您必须向ItemForSale类添加
Set
ss..这也需要添加到映射(XML)中..同样,当前表示中没有任何错误。