Array

<class name="com.jason.collections.array.Person" table="PERSON">
  <id name="id" column="PERSON_ID">
   <generator class="native"/>
  </id>
  <property name="name" column="PERSON_NAME"/>
  
  <array name="events" cascade="all" fetch="join"  >
    <key column="PERSON_ID"/>
    <list-index column="idx"/> <!--list-index, index...-->
    <one-to-many class="com.jason.collections.array.Event"/>
    <!--<element column="title" type="string" />-->
  </array>
 
 </class>
 <class name="com.jason.collections.array.Event" table="EVENT">
  <id name="id" column="EVENT_ID">
   <generator class="native"/>
  </id>
  <property name="title"/>
 </class>
 
 <!--
  CREATE TABLE person (person_Id int PRIMARY KEY, person_Name varchar(20))
  CREATE TABLE Event (Event_Id int PRIMARY KEY, PERSON_ID int not null, idx int not null, title varchar2(20))
 -->



 Bag

 <class name="com.jason.collections.bag.Person" table="PERSON">
  <id name="id" column="PERSON_ID">
   <generator class="native"/>
  </id>
  <property name="name" column="PERSON_NAME"/>
  
  <bag name="events" cascade="all">
   <key column="PERSON_ID"/>
   <one-to-many class="com.jason.collections.bag.Event"/>
    <!--<element column="title" type="string" />-->
  </bag>
 </class>
 
 <class name="com.jason.collections.bag.Event" table="EVENT">
  <id name="id" column="EVENT_ID">
   <generator class="native"/>
  </id>
  <property name="title"/>
 </class>
 <!--
  CREATE TABLE person (person_Id int PRIMARY KEY, person_Name varchar(20))
  CREATE TABLE Event (Event_Id int PRIMARY KEY, PERSON_ID int not null, title varchar2(20))
 -->
 
 

 Set

 <class name="com.jason.collections.set.Person" table="PERSON">
  <id name="id" column="PERSON_ID">
   <generator class="native"/>
  </id>
  <property name="name" column="PERSON_NAME"/>

  <set name="events" cascade="all">
   <key column="PERSON_ID"/>
   <one-to-many class="com.jason.collections.set.Event"/>
   <!--<element column="title" type="string" />-->
  </set>

 </class>
 <class name="com.jason.collections.set.Event" table="EVENT">
  <id name="id" column="EVENT_ID">
   <generator class="native"/>
  </id>
  <property name="title"/>
 </class>
 <!--
  CREATE TABLE person (person_Id int PRIMARY KEY, person_Name varchar(20))
  CREATE TABLE Event (Event_Id int PRIMARY KEY, PERSON_ID int not null, title varchar2(20))
 -->
 
 



 Map
<class name="com.jason.collections.map.Person" table="PERSON">
  <id name="id" column="PERSON_ID">
   <generator class="native"/>
  </id>
  <property name="name" column="PERSON_NAME"/>
  
  <map name="events" table="event">
        <key column="PERSON_ID"/>
        <index column="name" type="string"/>
        <element column="title" type="string"/>
    </map> 
 </class>
 
 <!--
  CREATE TABLE person (person_Id int PRIMARY KEY, person_Name varchar(20))
  CREATE TABLE Event (Event_Id int PRIMARY KEY, person_Id int, name varchar2(20), title varchar2(20))

 -->