hibernate的集合属性 .

来源:互联网 发布:netty 监听多个端口 编辑:程序博客网 时间:2024/05/22 13:38

<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE hibernate-mapping PUBLIC
 "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="org.crazyit.app.domain">
 <class name="Person" table="person_inf">
  <!-- 映射标识属性 -->
  <id name="id" column="person_id">
   <!-- 指定主键生成器策略 -->
   <generator class="identity"/>
  </id>
  <!-- 映射普通属性 -->
  <property name="name" type="string"/>
  <property name="age" type="int"/>
  <!-- 映射List集合属性 -->
  <list name="schools" table="school">
   <!-- 映射集合属性数据表的外键列  http://blog.csdn.net/aweijun360/article/details/6804902-->
   <key column="person_id" not-null="true"/>
   <!-- 映射集合属性数据表的集合索引列  一个Person 一个序列-->
   <list-index column="list_order"/>
   <!-- 映射保存集合元素的数据列 -->
   <element type="string" column="school_name"/>
  </list>
 </class>
</hibernate-mapping>

package org.crazyit.app.domain;import java.util.List;import java.util.ArrayList;/** * Description: * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>  * <br/>Copyright (C), 2001-2012, Yeeku.H.Lee * <br/>This program is protected by copyright laws. * <br/>Program Name: * <br/>Date: * @author  Yeeku.H.Lee kongyeeku@163.com * @version  1.0 */public class Person{//标识属性private Integer id;//普通属性nameprivate String name;//普通属性ageprivate int age;//集合属性,保留该对象关联的学校private List<String> schools = new ArrayList<String>();//id属性的setter和getter方法public void setId(Integer id){this.id = id;}public Integer getId(){return this.id;}//name属性的setter和getter方法public void setName(String name){this.name = name;}public String getName(){return this.name;}//age属性的setter和getter方法public void setAge(int age){this.age = age;}public int getAge(){return this.age;}//schools属性的setter和getter方法public void setSchools(List<String> schools){this.schools = schools;}public List<String> getSchools(){return this.schools;}}
package lee;import org.hibernate.Transaction;import org.hibernate.Session;import java.util.Date;import java.util.List;import java.util.ArrayList;import org.crazyit.app.domain.*;/** * Description: * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>  * <br/>Copyright (C), 2001-2012, Yeeku.H.Lee * <br/>This program is protected by copyright laws. * <br/>Program Name: * <br/>Date: * @author  Yeeku.H.Lee kongyeeku@163.com * @version  1.0 */public class PersonManager{public static void main(String[] args){PersonManager mgr = new PersonManager();mgr.createAndStorePerson();HibernateUtil.sessionFactory.close();}//创建并保存Person对象private void createAndStorePerson(){//打开线程安全的session对象Session session = HibernateUtil.currentSession();//打开事务Transaction tx = session.beginTransaction();//创建Person对象Person yeeku = new Person();//为Person对象设置属性yeeku.setAge(29);yeeku.setName("crazyit.org");//创建List集合List<String> schools = new ArrayList<String>();schools.add("小学");schools.add("中学");//设置List集合属性yeeku.setSchools(schools);session.save(yeeku);tx.commit();HibernateUtil.closeSession();}}



 

原创粉丝点击