0
我需要创建一个M到N映射额外列,与anotations休眠,此表:M到N的映射与使用anotation
Table Food : Columns: id, description, size, type
Table Ingredients: Columns: id, description, price
Table Food_Ingredients: Columns: food_id (FK), ingredient_id (FK), quantity
类:
class Food {
/*mapped fields setter/getters*/
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.DETACH)
@JoinTable(name = "food_ingredient",
joinColumns = { @JoinColumn(name = "food_id", nullable = false) },
inverseJoinColumns = { @JoinColumn(name = "ingredient_id", nullable = false) })
private List<Ingredient> ingredients;
}
class Ingredients {/*mapped fields setter/getters*/}
那么,如何我可以映射这些实体吗?
这是最好的方式? – AndreDuarte 2014-10-06 14:28:16
这是我知道的唯一方法。 Food_Ingredients不是联结表,因为它包含一些额外的外键数据。您需要以某种方式传达有关数量的信息,因此您需要一个新的实体来完成此操作。 – 2014-10-06 14:42:20
它工作。我将尝试增强解决方案以获得简单的类,但是您的解决方案运行良好。非常感谢。 – AndreDuarte 2014-10-06 19:06:21