hibernate list集合映射

Person.java
package com.aabnn.vo;

import java.util.ArrayList;
import java.util.List;

public class Person {
	private int id;
	private String name;
	private List<String> schools= new ArrayList<String>();
	public Person(){
		
	}
	public Person(String name,List<String> schools){
		this.name=name;
		this.schools=schools;
	}
	public int getId() {
		return id;
	}
	@SuppressWarnings(value="unused")
	private void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public List<String> getSchools() {
		return schools;
	}
	public void setSchools(List<String> schools) {
		this.schools = schools;
	}
	
}


Person.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.aabnn.vo">
  <class name="Person" table="person">
  	<id name="id" column="id" type="integer">
  		<generator class="identity" />
  	</id>
  	<property name="name" type="string" column="name" />
  	<list name="schools" table="schools" >
  		<key column="id" />
  		<list-index column="listindex" />
  		<element type="string" column="name" />
  	</list>
  	
  </class>
</hibernate-mapping>

Test.java
package com.aabnn.test;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;

import com.aabnn.vo.Person;

public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SessionFactory sf=new Configuration().configure().buildSessionFactory();
		Session sess=sf.openSession();
		Transaction tx=sess.beginTransaction();
		List<String> schools=new ArrayList<String>();
		schools.add("elementary school");
		schools.add("middle school");
		schools.add("college");
		Person p=new Person("xiaoxiao",schools);
		sess.save(p);
		tx.commit();
		sess.close();
	}

}

mysql 数据库
CREATE DATABASE IF NOT EXISTS collectionmapping;
USE collectionmapping;

--
-- Definition of table `person`
--

DROP TABLE IF EXISTS `person`;
CREATE TABLE `person` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `name` varchar(45) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

--
-- Dumping data for table `person`
--

/*!40000 ALTER TABLE `person` DISABLE KEYS */;
INSERT INTO `person` (`id`,`name`) VALUES 
 (2,'xiaoxiao'),
 (3,'xiaoxiao');
/*!40000 ALTER TABLE `person` ENABLE KEYS */;


--
-- Definition of table `schools`
--

DROP TABLE IF EXISTS `schools`;
CREATE TABLE `schools` (
  `id` int(10) unsigned NOT NULL,
  `name` varchar(45) NOT NULL default '',
  `listindex` int(10) unsigned NOT NULL,
  PRIMARY KEY  (`id`,`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Dumping data for table `schools`
--

/*!40000 ALTER TABLE `schools` DISABLE KEYS */;
INSERT INTO `schools` (`id`,`name`,`listindex`) VALUES 
 (2,'college',2),
 (2,'elementary school',0),
 (2,'middle school',1),
 (3,'college',2),
 (3,'elementary school',0),
 (3,'middle school',1);

你可能感兴趣的:(java,sql,xml,Hibernate,mysql)