Hibernate: mapeando muitos para muitos para mapear
Estou desenvolvendo um aplicativo que lida com duas entidades a seguir:Produtos (vamos chamá-lo de X, Y, Z) eMateriais (a, b, c, ...). Sabe-se que todo produto possui uma receita que indica quais materiais são necessários para a fabricação desse produto. Por exemplo, para produzir um X, precisamos de 2 a, 6 ce 4 d (X = 2a + 6c + 4d).
É assim que se reflete nas tabelas de um banco de dados:
Products
id INT
name VARCHAR
...
Materials
id INT
name VARCHAR
...
Recipes
product_id INT
material_id INT
count INT
O campo "contagem" na terceira tabela é um coeficiente para materiais do mesmo tipo (2, 6, 4 do exemplo).
Então, eu quero compor a classe do produto desta maneira:
public class Product {
...
private Map<Material, Integer> recipe; // How many units of each material we need?
...
}
É uma maneira de buscar todos os dados necessários para o mapa de receitas usando o Hibernate? A abordagem de configuração separada (sem anotações) é preferida.