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表