【问题标题】:How to map many to many relationship with hibernate如何用hibernate映射多对多关系
【发布时间】:2015-10-27 13:58:15
【问题描述】:

我有一个要求,用户可以根据位置搜索餐厅并检查餐厅的菜单。菜单包含各种项目,如汤、开胃菜、主菜等。管理员用户应该能够查看新餐厅、菜单和项目及其价格。

现在在java中,我有这种关系,我只是为了清楚起见添加了必需的代码:

Restaurant.java

@Entity
public class Restaurant {

    @Id
    private Long id;
    private String name;

    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "restaurant_menu")
    private Menu menu;
}

Menu.java

@Entity
public class Menu {

    @Id
    private Long id;
    private String name;

    @ManyToMany(cascade = CascadeType.ALL)
    @JoinTable(name = "menu_soups", joinColumns = { @JoinColumn(name = "menu_id") }, inverseJoinColumns = { @JoinColumn(name = "soup_id") })
    private Set<Soup> soups = new HashSet<Soup>();
}

Soup.java

@Entity
public class Soup {

    @Id
    private Long id;
    private String name;
}

现在我很困惑,我应该把价格细节保存在哪里。由于菜单和汤有多对多的关系,我应该维护一个单独的表。但是我怎么能在休眠中做到这一点。

【问题讨论】:

  • 价格是菜单的属性还是汤的属性?还是两者兼而有之?
  • @user3181365 我不相信,这是 Dhruv Rai Puri 在他的仅链接答案中提供的链接。这个问题应该作为重复问题关闭,因此我标记了它。

标签: java hibernate


【解决方案1】:

看看这个 - answer ,它解释了如何在多对多关系上拥有属性,这基本上是你所需要的。

【讨论】:

    猜你喜欢
    • 2014-03-29
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    • 2014-08-17
    • 2018-01-13
    • 2020-09-27
    • 1970-01-01
    相关资源
    最近更新 更多