One To Many Mapping List
///////////////////////////////////////////////////////////////////////// import java.io.Serializable; import java.util.*; import org.hibernate.*; import org.hibernate.cfg.*; import org.hibernate.criterion.*; import org.hibernate.event.*; import org.hibernate.event.def.*; public class Main { public static void main(String[] args) throws Exception { HibernateUtil.setup("create table grouptable (id int,name varchar);"); HibernateUtil.setup("create table story (id int,info varchar,idx int,parent_id int);"); Session session = HibernateUtil.currentSession(); Group sp = new Group("Group Name"); ArrayList list = new ArrayList(); list.add(new Story("Story Name 1")); list.add(new Story("Story Name 2")); sp.setStories(list); Transaction transaction = null; try { transaction = session.beginTransaction(); session.save(sp); transaction.commit(); } catch (Exception e) { if (transaction != null) { transaction.rollback(); throw e; } } finally { session.close(); } HibernateUtil.checkData("select * from grouptable"); HibernateUtil.checkData("select * from story"); } } ///////////////////////////////////////////////////////////////////////// <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"> <hibernate-mapping> <class name="Group" table="grouptable"> <id name="id" unsaved-value="0"> <generator class="increment"/> </id> <list name="stories" cascade="all"> <key column="parent_id"/> <index column="idx"/> <one-to-many class="Story"/> </list> <property name="name" type="string"/> </class> <class name="Story" table="story"> <id name="id" unsaved-value="0"> <generator class="increment"/> </id> <property name="info"/> </class> </hibernate-mapping> ///////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////// import java.util.*; public class Group { private int id; private String name; private List stories; public Group(){ } public Group(String name) { this.name = name; } public void setId(int i) { id = i; } public int getId() { return id; } public void setName(String n) { name = n; } public String getName() { return name; } public void setStories(List l) { stories = l; } public List getStories() { return stories; } } ///////////////////////////////////////////////////////////////////////// import java.util.*; public class Story { private int id; private String info; public Story(){ } public Story(String info) { this.info = info; } public void setId(int i) { id = i; } public int getId() { return id; } public void setInfo(String n) { info = n; } public String getInfo() { return info; } } ///////////////////////////////////////////////////////////////////////// <?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- Database connection settings --> <property name="connection.driver_class">org.hsqldb.jdbcDriver</property> <property name="connection.url">jdbc:hsqldb:data/tutorial</property> <property name="connection.username">sa</property> <property name="connection.password"></property> <!-- JDBC connection pool (use the built-in) --> <property name="connection.pool_size">1</property> <!-- SQL dialect --> <property name="dialect">org.hibernate.dialect.HSQLDialect</property> <!-- Echo all executed SQL to stdout --> <property name="show_sql">true</property> <!-- Mapping files --> <mapping resource="Group.hbm.xml"/> </session-factory> </hibernate-configuration>
1. | One To Many Bidirectional Map | ![]() | |
2. | One To Many Mapping based on Set | ![]() | |
3. | One To Many Mapping based on Array | ![]() | |
4. | One To Many Mapping based on Bag | ![]() | |
5. | Mapping One To Many Set | ![]() |