Hibernate多对一映射实时场景

时间:2017-07-29 15:09:30

标签: hibernate transactions many-to-one

假设我们有一个销售3个水果的水果商,他有3个客户。如何进行hibernate映射来跟踪交易?这是一个面试问题,我不确定如何处理多对一场景的交易?

1 个答案:

答案 0 :(得分:1)

让我们说: 一个水果可以买一个,只有一个顾客,每个顾客可以买一个或多个水果。

在客户实体中,您应该使用@OneToMany注释List,在Fruit实体中,您应该使用@ManyToOne注释客户,这表示每个水果只能购买一个客户。

另一方面,如果你观察这样的水果对象,这很容易就是@ManyToMany关系: 餐桌水果:

| fruit_id | name  | count |
---------------------------
| 1        | apple | 100   |
| 2        | orange| 200   |
| 3        | peach | 300   |

你可以说每个水果都可以买到每个顾客,每个顾客都可以买到每个水果。 使用fruit_id连接表,customer_id应该如下所示:

| fruit_id | customer_id|
-------------------------
| 1        | 1          |
| 1        | 2          |
| 1        | 3          |
| 2        | 1          |
| 2        | 2          |
| 2        | 3          |