在Hibernate中映射Map <string,foo> </string,foo>

时间:2010-08-06 11:33:46

标签: java mysql database hibernate mapping

我正在尝试在Hibernate中映射我的Hashmap。 我能找到的所有例子都是这样的:

class FooBar{
    Map<String,String> myStrings;
}

哪个只是映射到

<map role="ages">
<key column="id"/>
<index column="name" type="string"/> 
<element column="age" type="string"/> 
</map>

但是,我在Java代码中使用了更加面向对象的方法。有点像以下几样:

class Bar{
    private Map<String, Foo> myFoos;
}

我将如何绘制此图?作为关系店? 否则定义:如何在Map中映射一对多?

谢谢, 巴特

1 个答案:

答案 0 :(得分:2)

Hibernate reference manual chapter on Collection Mapping中有几个例子。你可能想做类似

的事情
<map name="foos">
    <key column="id"/>
    <index column="name" type="string"/> 
    <one-to-many class="Foo"/>
</map>

区别在于<one-to-many class="Foo"/> - 这将通过使用外键列映射父表中Foo表的ID(即具有foos映射的对象)来映射关系。

根据您想要的关系类型,您可以根据自己的方式进行映射,还有其他几种风格和变体,请参阅手册了解更多示例。