Hibernate: отображение "многие-ко-многим" на Map

Я разрабатываю приложение, которое имеет дело с двумя следующими объектами: Продукты (назовем его X, Y, Z) и Материалы (а, б, в, ...). Известно, что у каждого продукта есть рецепт, в котором указано, какие материалы необходимы для его изготовления. Например, чтобы получить один X, нам нужно 2 a, 6 c и 4 d (X = 2a + 6c + 4d).

Вот как это отражается в таблицах базы данных:

Products
id INT
name VARCHAR
...

Materials
id INT
name VARCHAR
...

Recipes
product_id INT
material_id INT
count INT

«Количество» поле в третьей таблице - это коэффициент для материалов того же типа (2, 6, 4 из примера).

Итак, я хочу составить класс Product следующим образом:

public class Product {
    ...
    private Map<Material, Integer> recipe; // How many units of each material we need?
    ...
}

Это способ получить все необходимое данные для карты рецептов с использованием Hibernate? Отдельный подход к конфигурации (без аннотаций) является предпочтительным.

5
задан Ivan Stepuk 1 December 2010 в 18:31
поделиться