Hibernate的对象关系映射.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
映射文件的基本结构举例 hibernate-mapping元素 可以包含的子元素 class – 描述被映射的类 subclass/joined-subclass – 在继承关系的映射中会用到 query – 将查询语句定义在配置文件中 …. class元素 常用属性 name – 实体类的类名 table – 被映射到数据库表的名称 可以包含的常见子元素 id – 主键定义 property – 属性定义 关系映射定义(一对多、多对一等) 主键 - id 被映射的类必须要有一个id定义 通常使用逻辑主键 逻辑主键:没有意义的唯一标识符 业务主键:有意义的唯一标识符 Hibernate使用generator类来生成主键((书上117页)) Hibernate自带了很多generator(不同的主键生成策略) int/long – native String - uuid 我们也可以定义自己的generator 实现IdentifierGenerator接口 一般情况下不需要实现自己的generator 主键生成策略generator generator 主键生成器,每个主键都必须定义相应的主键生成策略。它用来为持久化类实例生成唯一的标识。 Hibernate内置的主键生成策略 数据库提供的主键生成机制。identity、sequence(序列) 。 外部程序提供的主键生成机制。increment (递增) ,hilo(高低位) ,seqhilo(使用序列的高低位 ),uuid.hex(使用了IP地址+JVM的启动时间(精确到1/4秒)+系统时间+一个计数器值(在JVM中唯一) ),uuid.string。 其它。native(本地),assigned(手工指定),foreign(外部引用)。 普通属性映射 - property 关联关系 多对一关联映射 - many-to-one many-to-one的映射最常用,也是最容易理解和编写的。 many-to-one name=group class=com.zdsoft.domain.Group fetch=select column name=group_id / /many-to-one 多对一关联映射 - many-to-one many-to-one的映射最常用,也是最容易理解和编写的。 many-to-one name=group class=com.zdsoft.domain.Group fetch=select column name=group_id / /many-to-one 多对一关联映射 - many-to-one 重要属性 - cascade(级联) 级联的意思是指定两个对象之间的操作联动关系,对一个对象执行了操作之后,对其指定的级联对象也需要执行相同的操作(当主控方执行操作的同时,关联对象(被动方)是否执行同一操作) 总共可以取值为:all、none、save-update、delete all-代表在所有的情况下都执行级联操作(如对User对象进行增删改查操作,则对User对象所包含的Group对象也做相应的增删改查操作。) none-在所有情况下都不执行级联操作 save-update-在保存和更新的时候执行级联操作(一般在情况下,cascade设置为save-update,因为很少出现删除一方就要级联删除所有的数据的情况) delete-在删除的时候执行级联操作 如: many-to-one name=“group” column=“groupid” cascade=“all”/ 多对一关联映射 - many-to-one 无cascade配置的TUser-Group执行代码 配置 many-to-one name=group class=com.zdsoft.domain.Group fetch=select column name=group_id / /many-to-one java代码 Transaction tx = session.beginTransaction(); Group group = new Group(); group.setName(管理组); TUser user = new TUser(); user.setAge(15); user.setName(张三); user.setGroup(group); session.save(user); mit(); 执行结果: 抛出org.hiberna

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档