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 hbm.xml配置映射
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- Hibernate中的一对一映射关系
Hibernate中的一对一映射关系有两种实现方法(单向一对一,和双向一对一)(一对一关系:例如一个department只能有一个manager) 单向和双向有什么区别呢??例如若是单向一对一,比如在 ...
- Hibernate入门3.配置映射文件深入
Hibernate入门3.配置映射文件深入 2013.11.27 前言: 之前的两节是在Java项目中如何使用hibernate,并且通过一个简单地项目实践,期间有很多的错误,一般都是因为配置包的问题 ...
- 第二节:创建模型,使用Code First,配置映射关系
这一节,实现模型的创建,配置映射关系 使用Code First数据迁移. 创建模型 一,首先创建几个接口:实体接口,聚合根接口,值对象接口 1,实体接口: 2,聚合根接口: 3,值对象接口: 二,模型 ...
- C# 数据操作系列 - 6 EF Core 配置映射关系
0. 前言 在<C# 数据操作系列 - 5. EF Core 入门>篇中,我们简单的通过两个类演示了一下EF增删改查等功能.细心的小伙伴可能看了生成的DDL SQL 语句,在里面发现了些端 ...
- Hibernate框架 主配置文件(Hibernate.cfg.xml) 映射配置 说明
Hibernate.cfg.xml 主配置文件中主要配置:数据库连接信息.其他参数.映射信息! 常用配置查看源码: hibernate-distribution-3.6.0.Final\project ...
- hibernate基于注解实现映射关系的配置
关联关系的配置步骤 ①要理清楚管理关系 ②确定管理依赖关系的哪一方 1一对一例如:person 和IdCard ①确定依赖关系:一对一 ②依赖关系由person类管理代码如下: person: @En ...
- hibernate.cfg.xml 配置(摘录)
配置文件中映射元素详解 对象关系的映射是用一个XML文档来说明的.映射文档可以使用工具来生成,如XDoclet,Middlegen和AndroMDA等.下面从一个映射的例子开始讲解映射元素,映射文件的 ...
- SSH框架之Hibernate(1)——映射关系
ORM的实现思想就是将关系数据库中表的数据映射成对象.以对象的形式展现,这样开发者就能够把对数据库的操作转化为对这些对象的操作.Hibernate正是实现了这样的思想,达到了方便开发者以面向对象的思想 ...
随机推荐
- StackExchange.Redis学习笔记(三)
这一章主要写一些StackExchange.Redis的配置及不太经常用到的函数 数据库连接 下面是我的连接字符串,里面指定了地址,密码,及默认的数据库 Redis启动后默认会分成0-15个数据库,不 ...
- 字符串的缺点以及StringBuilder
字符串的缺点: String 对象是不可改变的.每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间.在需要对字符串执行重复修改的 ...
- 《java.util.concurrent 包源码阅读》28 Phaser 第二部分
这一部分来分析Phaser关于线程等待的实现.所谓线程等待Phaser的当前phase结束并转到下一个phase的过程.Phaser提供了三个方法: // 不可中断,没有超时的版本 public in ...
- 多服务器操作利器 - Polysh
多台服务器下的痛苦人生 分布式架构下的系统,可以说每个服务都是分别部署在多台服务器上的,有的甚至还需要多机房,在这种架构下可以说可以很好的做到了易扩展.容灾等功能.推荐的服务部署为一服务多机器.一机器 ...
- 最耗性能的SQL语句
设计优化–常见杀手级SQL •SELECT * vsSELECT col1, col2 •ORDER BY RAND() •LIMIT huge_num, offset •SELECT COUNT(* ...
- buttongroup中content一次性加载的解决方法
buttongroup一次性加载所有内容的解决方法 如下图所示: 第一步: 设置windowcontainer的autoLoad属性为false(默认情况下autoLoad属性为true,所以会加载所 ...
- MySql的简单数据类型区别与认识
date 3字节,日期,格式:2014-09-18time 3字节,时间,格式:08:42:30datetime 8字节,日期时间,格式:2014-09-18 08:42:30 ...
- 简单使用Unity导航系统(小白之路)
1.介绍 NavMesh:是一种根据场景中几何图像创建出来的3D网格.它会使导航和寻路变得很容易. 简单来说,NavMesh是一种我们在游戏世界中,可以让游戏角色在其表面行走并且导航的平面. 2.注意 ...
- php简单实现发微博动态
首先,肯定是注册成为开发者新浪微博开放平台 选择网站应用,填写一些基本信息 填完后在'我的应用'中,会看到刚创建的应用信息,我们只是简单的测试一下,所以其他复杂的注册信息都不用填写,有这些就够了 很重 ...
- PHP7类型约束
在PHP7之前,函数和类方法不需要声明变量类型,任何数据都可以被传递和返回,导致几乎大部分的调用操作都要判断返回的数据类型是否合格. 为了解决这个问题,PHP7引入了类型声明. 目前有两类变量可以声明 ...