Java hibernate中的多对多多态表
我试图在hibernate中实现多对多多态关联 我有一个接口Java hibernate中的多对多多态表,java,oracle,hibernate,many-to-many,hibernate-mapping,Java,Oracle,Hibernate,Many To Many,Hibernate Mapping,我试图在hibernate中实现多对多多态关联 我有一个接口Animal和两个实现类Cat和Dog。我有另一个类Food,我希望通过数据库多对多关系将动物接口连接到Food类。我试图理解如何通过多态关联(如RubyonRails实现)来映射它 多对多关联应如下所示: ------------------------------------------------- | food_id | animal_type | animal_id | ----------------
Animal
和两个实现类Cat
和Dog
。我有另一个类Food,我希望通过数据库多对多关系将动物接口连接到Food类。我试图理解如何通过多态关联(如RubyonRails实现)来映射它
多对多关联应如下所示:
-------------------------------------------------
| food_id | animal_type | animal_id |
-------------------------------------------------
我已经做了一段时间了,我不知道如何在hibernate中实现它。现在还不太清楚您希望数据库映射到模型的内容,但通常hibernate映射模型是真实的,所以我假设一种食物被许多动物吃,而动物吃很多食物。 在这种情况下,您需要在数据库FOOD_ANIMAL中创建一个链接表,其中包含FOOD_id和ANIMAL_id: 食用动物: 食物及动物识别号(11) 然后你需要一个列表或一组动物食物,反之亦然。使用@ManyToMany进行映射。关于如何做到这一点,有很多例子,例如:
如果没有代码示例,恐怕我帮不了什么忙,但我希望这能有所帮助 现在还不太清楚您希望数据库映射到模型的内容,但通常Hibernate映射会模拟现实,所以我假设一种食物被许多动物吃,而动物吃很多食物。 在这种情况下,您需要在数据库FOOD_ANIMAL中创建一个链接表,其中包含FOOD_id和ANIMAL_id: 食用动物: 食物及动物识别号(11) 然后你需要一个列表或一组动物食物,反之亦然。使用@ManyToMany进行映射。关于如何做到这一点,有很多例子,例如:
如果没有代码示例,恐怕我帮不了什么忙,但我希望这能有所帮助 那将是一个简单的多对多表。。。我在找更复杂的东西。。。由于animal是一个接口,因此动物没有唯一的id,相反,该特定动物类型的类名和id充当一个多键…您的接口不应为对象本身建模。您可以使用hibernate将动物表(包含唯一ID)映射到使用@table的Java模型,标准是将您的接口用作使用hibernate更新数据库的数据访问对象。我建议在你的情况下使用标准模式,因为这是一种简单的m-to-m关系。你解决方案的问题是,如果我明天决定创建一个宠物界面,在那里我放置猫、狗和石头(这不是动物界面),它们所有的动物和宠物都必须共享一个id序列。。。后来,当我决定添加另一个名为Thing的接口时,我有Rock、电梯和Motorcycle,它们也必须在相同的id序列下,因为狗必须和Rock具有相同的id序列,Rock必须和Motorcycle具有相同的id序列。。。我们可以添加更多的例子。问题是具体的,我怎样才能创建那种类型的多边形关联…那将是一个简单的多对多表。。。我在找更复杂的东西。。。由于animal是一个接口,因此动物没有唯一的id,相反,该特定动物类型的类名和id充当一个多键…您的接口不应为对象本身建模。您可以使用hibernate将动物表(包含唯一ID)映射到使用@table的Java模型,标准是将您的接口用作使用hibernate更新数据库的数据访问对象。我建议在你的情况下使用标准模式,因为这是一种简单的m-to-m关系。你解决方案的问题是,如果我明天决定创建一个宠物界面,在那里我放置猫、狗和石头(这不是动物界面),它们所有的动物和宠物都必须共享一个id序列。。。后来,当我决定添加另一个名为Thing的接口时,我有Rock、电梯和Motorcycle,它们也必须在相同的id序列下,因为狗必须和Rock具有相同的id序列,Rock必须和Motorcycle具有相同的id序列。。。我们可以添加更多的例子。问题是具体的,我如何才能创建这种类型的多边形关联。。。