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正是实现了这样的思想,达到了方便开发者以面向对象的思想 ...
随机推荐
- Spring AMQP + Rabbit 配置多数据源消息队列
一般在稍微大一点的项目中,需要配置多个数据库数据源,最简单的方式是用 Spring 来实现,只需要继承 AbstractRoutingDataSource 类,实现 determineCurrentL ...
- TensorFlow简易学习[1]:基本概念和操作示例
简介 TensorFlow是一个实现机器学习算法的接口,也是执行机器学习算法的框架.使用数据流式图规划计算流程,可以将计算映射到不同的硬件和操作系统平台. 主要概念 TensorFlow的计算可以表示 ...
- [拓扑排序]Ordering Tasks UVA - 10305
拓扑排序模版题型: John has n tasks to do.Unfortunately, the tasks are not independent and the execution of o ...
- 使用Maven Archetype插件构建Maven工程原型模板
创建原型模板 1.在空目录运行archetype:generate上面的命令,待下载完必要的jar包后,首先需要输入内置的原型编号: 1 Choose archetype: 2 1: internal ...
- ideal中如何添加几个不同的项目在同一个idea页面显示(同一个窗口显示多个工程)
今天,我遇到了一个问题,就是同事给了我一些项目,我下载了之后,项目有点多,然后想把这些项目都放到一个里面,所以我就采取了添加module的方式进行添加,首先先看一下我们的四个项目, 我们就想实现在一个 ...
- js中对节点属性的操作和对节点的操作
常用的节点属性操作方法 1.setAttribute(name,value):给某个节点添加一个属性 2.getAttribute(name):获取某个节点属性的值. 3.removeAttribut ...
- Class 与 Style 绑定
将 v-bind 用于 class 和 style 时,Vue.js 做了专门的增强.表达式结果的类型除了字符串之外,还可以是对象或数组. 绑定 HTML Class 对象语法 <div cla ...
- Android Weekly Notes Issue #286
December 3rd, 2017 Android Weekly Issue #286 本期文章包含如何通过踩坑来学习Kotlin,以及利用Kotlin的data class做MVVM状态保存,还包 ...
- HDU2186--水
悼念512汶川大地震遇难同胞--一定要记住我爱你 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java ...
- redis秒杀
用Redis轻松实现秒杀系统 秒杀系统的架构设计 秒杀系统,是典型的短时大量突发访问类问题.对这类问题,有三种优化性能的思路: 写入内存而不是写入硬盘 异步处理而不是同步处理 分布式处理 用上这三招, ...