Hibernate--使用xml配置映射关系

Posted 蚊蚊蚊蚊蚊170624

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate--使用xml配置映射关系相关的知识,希望对你有一定的参考价值。

 

写在前面:

  配置实体类与数据库的映射关系,有两种方式:

  1.使用*.hbm.xml       

   2.使用@注解

 

   二:xml的配置方式:

  eg:员工的xml配置文件:
<?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="edu.hue.erp.auth.emp.vo.EmpModel" table="tbl_emp">
           <!-- id为主键的配置:
           id-name:实体类中的属性名
           column-name:数据库表中主键名
           generator-class:主键生成策略 -->
           <id name="uuid" >
               <!-- 数据库表中主键字段名与实体类的属性名相同时,column可以省略不写 -->
               <!-- <column name="uuid"></column> -->
               <generator class="native"></generator>
           </id>
           
           <!-- property:非主键属性的配置
           property-name:实体类中属性名
           column-name:实体类中属性对应的数据库表中字段名
            -->
           <!-- 数据库表中主键字段名与实体类的属性名相同时,column可以省略不写 -->
           <!-- <property name="username">
               <column name="username"/>
           </property> -->
           <property name="username"/>
           <property name="pwd"/>
           <property name="name"/>
           <property name="tele"/>
           <property name="address"/>
           <property name="email"/>
           <property name="gender"/>
           <property name="birthday"/>
           <property name="lastLoginTime"/>
           <property name="lastLoginIp"/>
           <property name="loginTimes"/>
           
           <!-- 员工对部门 多对一的关系 -->
           <!-- name:与员工实体类中含有的部门对象名一致
           column:员工表中的外键(部门的主键)
           class:一方 中 类的全路径 -->
           <many-to-one 
               name="dm"
               column="depUuid" 
               class="edu.hue.erp.auth.dep.vo.DepModel"
           />
           
           <!-- 员工对角色 多对多 -->
           <!-- name:与员工实体类中含有的角色对象名一致
           table:中间表名
           key-column:员工表的主键
           many-to-many--column:角色主键
           many-to-many--class:角色类的全路径 -->
           <set name="roles" table="tbl_emp_role">
               <key column="empUuid"/>
               <many-to-many column="roleUuid" class="edu.hue.erp.auth.role.vo.RoleModel"/>
           </set>
           
           
           
   </class>
</hibernate-mapping>
<!-- 另外补充在部门的配置文件中:

         //部门对员工  一对多 
        //private Set<Employee> emps;
        
         当进行级联删除时
           一方对象首先要放弃与多方之间的关系,转化为将外键字段设置为null
           如果此时外键字段设置为不允许为null,引发下列异常 
           java.sql.BatchUpdateException:Column ‘depUuid‘ cannot be null
           此时只需要在进行关系维护时,使一方对象不对关系进行维护即可,不操作外键——————inverse=true
           
           <set name="emps" cascade="delete" inverse="true">
               <key column="depUuid"/>
               <one-to-many class="edu.hue.erp.auth.emp.vo.EmpModel"/>
           </set>
           //注意部门对员工一对多与员工对部门多对一中的column是一致的
 -->

 

天啦 真是丧尽天良啊。。。。少于150字不允许被发布出去不允许被发布出去不允许被发布出去。。。。。。。。。。

真的是,难道插入的代码不算字数的么。。。。。好。。很好。。。那我们就来一起凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑

凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑凑

够这150字。。。

 

 

 

 

以上是关于Hibernate--使用xml配置映射关系的主要内容,如果未能解决你的问题,请参考以下文章

分享知识-快乐自己:初识 Hibernate 概念片

Hibernate映射关系配置

hibernate笔记--使用注解(annotation)方式配置单(双)向多对一的映射关系

hibernate.cfg.xml 和 applicationContext.xml的关系,

hibernate表映射xml方式多对多怎么配置

hibernate关联映射注解