Adding a map in hibernate is fairly easy. Map has key value pair and we’ll be adding a Map in the persistent class. Here’s the persistent class:

public class Student {

    Long id;
    String firstName;
    String lastName;
    
    Map<String,String> images = new HashMap<String, String>();

// getters and setters for the properties
}

Here’s the mapping file:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.jft.prashant.Student" table="STUDENTS">

    <id name="id" column="STUDENT_ID" type="long">
        <generator class="increment"/>
    </id>

    <property name="firstName" column="STUDENT_FIRST_NAME" type="string" />

    <property name="lastName" column="STUDENT_LAST_NAME" type="string" />

    <map name="images" table="STUDENT_IMAGE">
        <key column="ITEM_ID"/>
        <map-key column="IMAGE_NAME" type="string"/>
        <element type="string" column="FILE_NAME" not-null="true"/>
    </map>
</class>
</hibernate-mapping>

Primary key of the collection table will be composite of IMAGE_NAME and ITEM_ID. That’s all about adding map to the persistent class.