Hibernate集合属性配置

Hibernate集合属性配置文件

1.List属性配置

public class Person{
	private int id;
	private String name;
	private int age;
	private List<String> schools=new ArrayList<String>();
...省略get/set
}

<?xml version="1.0" encoding="utf-8"?>
<!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="entity.Person" table="t_person">
		 <id name="id" type="java.lang.Integer">
            <column name="ID" />
            <generator class="identity" />
        </id>
		<property name="name" type="java.lang.String">
			<column name="NAME" length="20" ></column>
		</property>
		<property name="age" type="java.lang.Integer">
			<column name="AGE" length="5" ></column>
		</property>
		<list name="schools" table="school">
			<key column="personid" not-null="true"/>
			<list-index column="list_order"/>
			<element type="string" column="school_name"/>
		</list>
	</class>
</hibernate-mapping>


Transaction tx=null;
	@Test
	public void listConfDemo() {
		Configuration conf=new Configuration().configure();
		SessionFactory sf=conf.buildSessionFactory();
		Session session=sf.openSession();
		tx=session.beginTransaction();
		Person person=new Person();
		person.setAge(17);
		person.setName("czk");
		List<String> schools=new ArrayList<String>();
		schools.add("小学");
		schools.add("初中");
		schools.add("大学");
		person.setSchools(schools);
		session.save(person);
		tx.commit();
		sf.close();
	}

person表

school表



2.set属性配置

public class Student {
	private int id;
	private String name;
	private Set<String> banji=new HashSet<String>();
	public Student(){}
        ...省略get/set
}

<?xml version="1.0" encoding="utf-8"?>
<!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="entity.Student">
		<id name="id" type="java.lang.Integer">
			<column name="ID"/>
			<generator class="identity"/>
		</id>
		<property name="name">
			<column name="NAME" length="10"></column>
		</property>
		<set name="banji" table="banji">
			<key column="banji_id" not-null="true"/>
			<element type="string" column="banji_name" not-null="true"/>
		</set>
	</class>
</hibernate-mapping>
test方法
	public void setConfDemo(){
		Configuration conf=new Configuration().configure();
		SessionFactory sf=conf.buildSessionFactory();
		Session session=sf.openSession();
		tx=session.beginTransaction();
		Student student=new Student();
		Set<String> banji=new HashSet<String>();
		banji.add("042081");
		banji.add("054082");
		banji.add("65488822");
		student.setBanji(banji);
		student.setName("czk1");
		session.save(student);
		tx.commit();
		session.close();
		sf.close();
	}

student表


banji表


3hashMap属性配置

public class Role {
	private int r_id;
	private String name;
	private Map<String,String> powers=new HashMap<String,String>();
	public Role(){}
        ...省略get/set
}

<?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="entity">
	<class name="Role" table="role_inf">
		<id name="r_id" column="r_id">
			<generator class="identity"/>
		</id>
		<property name="name" type="java.lang.String"/>
		<map name="powers" table="power">
			<key column="r_id" not-null="true"/>
			<map-key type="java.lang.String" column="BUMEN"/>
			<element type="java.lang.String" column="JIBIE"/>
		</map>
	</class>
</hibernate-mapping>

	public void hashMapConfDemo(){
		Session session=HibernateUtil.currentSession();
		tx=session.beginTransaction();
		Role role=new Role();
		Map<String,String> power=new HashMap<String,String>();
		power.put("商务部", "经理");
		role.setPowers(power);
		role.setName("czk");
		session.save(role);
		tx.commit();
		HibernateUtil.closeSession();
	}

role_inf表


power表


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值