zoukankan      html  css  js  c++  java
  • 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字。。。

     
  • 相关阅读:
    JavaScript学习之路-语法
    JavaScript学习之路-语法
    JavaScript学习之路-为什么要学习JavaScript语法
    JavaScript学习之路-为什么要学习JavaScript语法
    net4:Panel动态添加控件及隐藏,Table动态创建表格
    net1:DateTime,Application与Session,
    C#精髓第四讲 GridView 72般绝技
    J2ME开发基本语法及小实例专题
    net6:创建Membership对象数据源的代码
    net4:GridView中的重要操作(添加checkbox,以及鼠标动作,行颜色等)
  • 原文地址:https://www.cnblogs.com/eleven258/p/7743546.html
Copyright © 2011-2022 走看看