java - @ManyToMany 表之间的关系
问题描述
我有三个独立的实体dish, kitchen, restaraunt
和链接表many
。我的问题是,如何在我的实体类中定义这种关系?
厨房模型
@Entity
@Table(name = "kitchen")
public class Kitchen {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "kitchen_name")
private String name;
@Column(name = "kitchen_photo")
private Blob photo;
}
碟型
@Entity
@Table(name = "dish")
public class Dish {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "dish_name")
private String dishName;
@Column(name = "dish_photo")
private Blob dishPhoto;
餐厅模型
public class Restaraunt {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "res_name")
private String name;
@Column(name = "res_rating")
private double rating;
@Column(name = "res_address")
private String address;
@Column(name = "res_number")
private String number;
@Column(name = "res_site")
private String site;
@Column(name = "res_price")
private String price;
@Column(name = "res_photo")
private Blob photo;
链接表 多模型
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "res_id")
private long res_id;
@Column(name = "kitchen_id")
private long kitchen_id;
@Column(name = "dish_id")
private long dish_id;
@Column(name = "many_name")
private String name;
@Column(name = "many_rating")
private double rating;
@Column(name = "many_address")
private String address;
@Column(name = "namy_number")
private String number;
@Column(name = "many_site")
private String site;
@Column(name = "many_price")
private String price;
@Column(name = "many_photo")
private Blob photo;
@Column(name = "dish_name")
private String dishName;
@Column(name = "kitchen_name")
private String kitchenName;
@Column(name = "dish_photo")
private Blob dishPhoto;
@Column(name = "kitchen_photo")
private Blob kitchePhoto;
我知道如何定义两个表之间的这种关系,但是对于两个以上我不确定。我需要创建表Many
吗?
解决方案
按照这样的理解去,一个Restaurant
会有很多菜和一个Kitchen
您可以定义如下关系
@Entity
public class Restaraunt {
// all other fields
@OneToMany
private Set<Dish> dishes;
@OneToOne
private Kitchen kitchen;
}
您可以像上面一样从一侧进行映射,也可以从两侧定义它,即 fromDish
和Kitchen
as well - Dish
to Restaurant
asManyToOne
和Kitchen
to Restaurant
asOneToOne
我看不出有任何理由拥有这个Many
模型。
推荐阅读
- javascript - 谷歌发布标签允许客户编辑更新广告
- flutter - 跨应用程序的 Flutter Firebase 用户身份验证管理
- python - 检查值是否在列表中的更好方法?
- python - 如何使用漂亮的汤禁用不在列表中的所有链接
- python - 在 Scrapy 中使用字体或颜色抓取网站
- python - python求解字符串内的方程
- javascript - Expressjs:如何使用多个查询字符串正确搜索?
- javafx - 无法通过另一个控制器控制另一个 fxml 文件的元素
- typescript - 使用原型向 Typescript 类添加方法
- python - 想将pygame项目转换为windows可执行文件