Нечто похожее уже обсуждалось в данном вопросе:
https://qna.habr.com/q/1111518
Допустим, что у вас есть сущность Product, а также сущность Order.
В одном заказе может быть некоторое кол-во одного товара, а значит, вам где-то нужно хранить еще и кол-во заказанного товара.
Для этого подойдет аггрегация, как вариант.
Т.е. нужно завести доп. таблицу (например, OrderData), в которой foreign_keys будут являться и product_id и order_id, а также будет. доп. колонка quantity.
+----------+------------+----------+
| order_id | product_id | quantity |
+----------+------------+----------+
| 1 | 2 | 10 |
| 2 | 3 | 11 |
+----------+------------+----------+
Таким образом, у вас должно получится что-то типа такого (псевдокод):
Product {
long productId;
}
Order {
long orderId;
}
OrderData {
Order order;
Product product;
int quantity;
}
Другой вариант:
это как указано в вопросе по ссылке выше. Использовать мапу.
Привожу ссылку на полезный ресурс:
https://www.baeldung.com/hibernate-persisting-maps
Что в данном случае должно получиться (псевдокод):
Product {
long productId;
}
Order {
@MapKeyColumn(name = "product_id")
@Column(name = "quantity")
Map<Long, Integer>
}
В данном случае, мы указываем на MapKeyColumn. Т.е. уник. ключом будет являться идентификатор продукта. А значением будет его кол-во (название указано в Column).
Наверняка, если подумать еще, то можно найти еще варианты.