Hibernate数据关联映射之一对多和多对一配置
2017-05-19 00:12
381 查看
Hibernate数据关联映射
1.一对多关系配置以Emp(员工)表和Dept(部门)表为例,一个部门中有多个员工(一对多映射),多个员工可以同属于一个部门(多对一),一对多和多对一中,可以只配置其中一方。
在一对多中,需要在Dept类中添加Emp类所属的员工信息,首先定义实体类,此处省略set和get方法,Hibernate必须给实体类提供不带参数的构造方法,所以可不生成构造方法
以下省略Hibernate.cfg.xml配置
public class Dept implements Serializable{ private Integer id; private String dname; private String loc; private Set<Emp>emps=new HashSet<Emp>();
在Dept.hbm.xml配置文档中配置属性映射,set-name指定实体类的属性,此处必须是是一个set集合;
inverse=”true” 权利反转,将维护关系的权利交由另一方;
cascade=”all” 级联操作,对管理中的对象进行操作,其关联的对象也会受到影响,此处表示关联所有对象
<class name="Dept" table="DEPT"> <id name="id"> <generator class="sequence"/> </id> <property name="dname"/> <property name="loc"/> <set name="emps" cascade="all"> <key column="did"/> <ont-to-many class="Emp"/> </set> </class>
编写测试类,添加信息员工及部门信息,因为在xml中配置了inverse级联操作,所以只需save(dept)可以了
//设置类与类之间的关系 //创建部门 Dept dept=new Dept(); dept.setDname("就业部"); dept.setLoc("百脑汇18楼"); //创建员工 Emp emp1=new Emp(); emp1.setEname("张三"); emp1.setGender("男"); Emp emp2=new Emp(); emp2.setEname("李四"); emp2.setGender("男"); //将员工添加到部门当中 Set<Emp> emps=new HashSet<Emp>(); emps.add(emp1); emps.add(emp2); dept.setEmps(emps); //保存数据 session.save(dept);
2.多对一关系配置
创建emp实体类,并添加Dept对象
public class Emp implements Serializable{ private Integer id; private String ename; private String gender; private Dept dept;
在emp.hbm.xml中配置多对一关系
<class name="Emp" table="EMP"> <id name="id"> <!-- Mysql 配置主键生成策略 --> <generator class="native"/> </id> <property name="ename"/> <property name="gender"/> <!-- 配置多对一 --> <many-to-one name="dept" class="Dept" column="did" /> </class>
编写测试类,打印emp信息及其所属的Dept信息
Emp emp = (Emp) session.get(Emp.class, 1); //打印dept当中的信息 System.out.println(emp.getId()+","+emp.getEname()+","+emp.getGender()); Dept dept = emp.getDept(); System.out.println(dept.getId()+","+dept.getDname()+","+dept.getLoc()); session.close();
至此一对多和多对一数据关联映射配置完毕。
4000
相关文章推荐
- hibernate框架中的数据关联映射
- 【转】hibernate annotation方式配置实体关联关系,解决关联外键数据不存在时抛出异常的问题
- 使用Hibernate的XML配置来映射枚举类型,存储自定义类型数据
- Hibernate配置文件与关联映射介绍
- Hibernate一对一关联映射配置
- Hibernate数据关联映射之一对一和多对多
- Hibernate一对多关联映射的配置及其级联删除问题
- Hibernate的关联映射,数据表的关联
- Hibernate 关联映射配置文件
- Hibernate多对多的关联映射(如何配置,代码实现)
- 非使用hibernate配置实体类关联数据库表,简单javaBean开发时读取一条数据解决方案
- Hibernate配置文件映射java数据基本类型
- Hibernate实体关系关联映射中配置文件的编写
- Hibernate数据关联映射出现Could not execute JDBC batch update的异常处理
- Hibernate一对一主键双向关联映射(xml配置)
- Hibernate 多对多关联映射配置
- Hibernate复合主键作为外键在关联映射中的配置方法
- Hibernate一对一关联映射配置
- Hibernate多对多双向关联,Annotation与映射文件方式。解决中间表无法插入数据。
- Hibernate关联映射-数据对象三种关系