Hibernate 指定与多个表的一对多关系

Hibernate 指定与多个表的一对多关系,hibernate,jpa,spring-data-jpa,Hibernate,Jpa,Spring Data Jpa,我有一张三人桌 1) .类别(id,CategoryName) 2) .项目(id、imageUrl、名称、价格、单位) 3) .Shoppingcart(id,创建日期) 用例是 1) 一个类别可以有多个项目 2) 一个购物车可以有多个项目 所以我的问题是 1) 项目在类别和ShoppingCart之间共享,如何在hibernate中指定实体关系 2) 如果我必须针对商品指定购物车的数量 i、 e购物车中的物品数量。 如何在它们之间创建实体关系。这是关系的样子: public class It

我有一张三人桌

1) .类别(id,CategoryName)

2) .项目(id、imageUrl、名称、价格、单位)

3) .Shoppingcart(id,创建日期)

用例是

1) 一个类别可以有多个项目

2) 一个购物车可以有多个项目

所以我的问题是

1) 项目在类别和ShoppingCart之间共享,如何在hibernate中指定实体关系

2) 如果我必须针对商品指定购物车的数量 i、 e购物车中的物品数量。
如何在它们之间创建实体关系。

这是关系的样子:

public class Item {

    private int id;

    // all other fields

    @ManyToOne
    @JoinColumn
    private Category category;

    @ManyToOne
    @JoinColumn
    private ShoppingCart shoppingCart;

    /*.........
    Setter Getters
    */


}


public class Category {

    private int id;

    // all other fields

    @OneToMany(mappedBy = "bookCategory", cascade = CascadeType.REMOVE)
    private Set<Item> items;

    /*.........
    Setter Getters
    */


}

public class ShoppingCart {

    private int id;

    // all other fields

    @OneToMany(mappedBy = "shoppingCart", cascade = CascadeType.REMOVE)
    private Set<Item> items;

    /*.........
    Setter Getters
    */


}
公共类项目{
私有int-id;
//所有其他领域
@许多酮
@连接柱
私人类别;
@许多酮
@连接柱
私人购物车;
/*.........
塞特吸气剂
*/
}
公共类类别{
私有int-id;
//所有其他领域
@OneToMany(mappedBy=“bookCategory”,cascade=CascadeType.REMOVE)
私人设置项目;
/*.........
塞特吸气剂
*/
}
公共类购物车{
私有int-id;
//所有其他领域
@OneToMany(mappedBy=“shoppingCart”,cascade=CascadeType.REMOVE)
私人设置项目;
/*.........
塞特吸气剂
*/
}

根据我对问题的理解,您希望创建两个映射,第一个映射是items-->category,另一个映射是items-->cart。如果我错了,请纠正我。但是,为什么您需要类别和购物车之间的关系?要进一步添加,您不能让购物车直接与类别相关,但它们是间接相关的,因为商品属于特定类别。@Archit Sud根据我对问题的理解,您希望先在商品之间创建两个映射---->category和另一个是items-->cart。如果我错了,请纠正我。但是为什么你需要类别和购物车之间的关系呢?=是的,但是我不需要类别和购物车之间的关系cart@ArchitSud使用您的解决方案,它将创建类别和购物车之间的关系?您可以在映射注释中添加fetch type参数,默认情况下,fetch类型为eager,它告诉JPA在选择根实体时获取关系的所有元素。这将在类别和shoppingcart之间创建关系。将在何处创建与项目对应的数量字段?