spring - Spring:持久化一个属性列表,该列表本身具有其他属性列表
问题描述
我正在尝试为食品订单管理制作网络服务。我有一个实体产品和餐厅,我正在努力制作 Order Entity 。
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@ManyToOne
@JoinColumn(name = "restaurant_id", referencedColumnName = "id", insertable=false, updatable=false)
@JsonBackReference
private Restaurant restaurant;
private int restaurant_id;
private String name;
private float price;
}
@Entity
public class Restaurant {
@Id
@GeneratedValue
private int id;
@NotNull
private String name;
private String city;
private String phone;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "restaurant", cascade = CascadeType.ALL)
@JsonManagedReference
private List<Product> menu;
}
我希望订单实体有一个列表。如果我在 Product 中保留一个属性 OrderId,以加入表 Product 和 Order,那会是个好主意吗?有没有更好的方法呢?
PS:我不想在 Product 中保留订单 ID,因为我认为 Product 不应该知道它
解决方案
是的,这是个好主意。
您可以使用 List in Order 实体并通过在产品中具有 order id 来加入它们。
很难说出你真正想要什么,但这个网站(在标题关系下)描述了可能适用于你所有用例的最佳实践!
https://vladmihalcea.com/tutorials/hibernate/
干杯!
推荐阅读
- javascript - 与 webpack 捆绑后,如何更改 Javascript 创建页面的 href?
- python - keras 的自定义指标 auc 回调问题
- javascript - Javascript 弹出窗口将 json 内容返回到父窗口
- python - 向量化使用 difflib.SequenceMatcher() 进行高效处理
- apache-spark - 通过 Spark Sql 访问“table$partitions”
- java - 拆分数字并将它们加在一起代码无法正常工作,它做错了什么?
- python - 如何计算量化后人工神经网络的计算复杂度
- flutter - Flutter:有没有办法从 dio 拦截器中显示错误消息?
- asynchronous - 混合同步/异步日志记录 log4j 不起作用
- angular - 检测动态组件上的数据更改不起作用