Iva*_*puk 5 java many-to-many hibernate map
我正在开发一个应用程序,它处理以下两个实体:产品(我们将其命名为X,Y,Z)和材料(a,b,c,...).众所周知,每种产品都有一个配方,表明制造该产品所需的材料.例如,为了产生一个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
Run Code Online (Sandbox Code Playgroud)
第三表中的"计数"字段是相同类型的材料的系数(来自该示例的2,6,4).
所以我想以这种方式撰写Product类:
public class Product {
...
private Map<Material, Integer> recipe; // How many units of each material we need?
...
}
Run Code Online (Sandbox Code Playgroud)
它是一种使用Hibernate获取配方Map的所有必要数据的方法吗?单独的配置方法(没有注释)是首选.
由于没有人发布没有注释的解决方案,我将展示JPA 2.0 @ElementCollection注释的解决方案:
@ElementCollection
@CollectionTable(name = "Recipes",
joinColumns = @JoinColumn(name = "product_id"))
@MapKeyJoinColumn(name = "material_id")
@Column(name = "count")
private Map<Material, Integer> recipe;
Run Code Online (Sandbox Code Playgroud)
另请注意,由于地图的值类别Integer,没有注释的解决方案可能会被记录为"集合映射"而不是"实体关系映射".
| 归档时间: |
|
| 查看次数: |
3428 次 |
| 最近记录: |