春季:保留一个属性列表,该属性列表本身具有其他属性的列表

时间:2018-10-15 04:26:17

标签: spring hibernate spring-boot jpa

我正在尝试为食品订单管理创建Web服务。我有实体产品和餐厅,并且正在努力使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;
}

我希望Order实体具有一个列表。如果我在Product中保留一个属性OrderId,以联接表Product和Order,那将是一个好主意吗?有什么更好的方法吗?

PS:我不想随产品保留订单ID,因为我认为产品不应该知道它

1 个答案:

答案 0 :(得分:0)

是的,这是个好主意。

您可以在“订单”实体中使用“列表”,并通过在产品中具有订单ID来加入它们。

很难说出您真正想要的是什么,但是此网站(在标题关系下)描述了可能适用于所有用例的最佳实践!

https://vladmihalcea.com/tutorials/hibernate/

干杯!