Hibernate Map 映射
Map对象中保存key/value形式的一对对象,key与value都是Object类型的变量。二者是一一对应关系,key值不能重量。
(1)、HashMap
   HashMap是基于哈希表的Map接口的实现,允许null作为key或者value的值。不记录key或value对加入的顺序且不保证线程安全,查找key/value对的效率比较高。
(2)、LinkedHashMap
   LinkedHashMap是HashMap的子类,内部使用链表保存数据LinkedHashMap对象中保存的key/value对有固定的顺序。
(3)、TreeMap
   TreeMap实现了Map与SortedMap接口,内部使用红黑树算法来排序加入的对象,还可以自定义排序规则实现按顺序功能并使用TreeMap对象的firstKey()、lastKey()、headMap()和tailMap()等方法取出对应索引位置的对象。

Map映射的使用方法如下:
public class User {

    private String id;
    private String username;
    private String password;
    private List emails = new ArrayList();

    public String getId() {
    ....
        对应的get/set方法省略
}
public class EMail {
    
    private String userId;
    private String emailAddress;
        private String usage;
       ....
        对应的get/set方法省略
}

<hibernate-mapping>
    <class name="com.kkoolerter.hibernate.beans.User" table="tb_user">
        <id name="id">
            <generator class="uuid"/>
        </id>
        <property name="username" />
        <property name="password"/>
       
        <map name="emails" table="tb_email">
        <key column="userid" foreign-key="id"/>
         <map-key type="java.lang.String" column="c_usage" />         
         <element type="java.lang.String" column="emailaddress"></element>
        </map>
       
    </class>
</hibernate-mapping>