您的位置:首页 > 其它

Hibernate集合属性配置

2015-02-07 16:41 295 查看
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表

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: