我有一个要求,即用户可以根据位置搜索餐厅并检查餐厅的菜单。菜单包含各种项目,如汤,开胃菜,主菜等。管理员用户应该能够新的餐厅,菜单和项目及其价格。
现在在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;
}
现在我很困惑,我应该在哪里保留价格细节。由于菜单和汤有多对多关系,我应该保持一个单独的表。但是我怎么能在休眠中做到这一点。