Hibernate的映射.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hibernate的映射 集合映射(Set、List、Bag、IdBag、Map) 集合映射的特点:用一个类映射了多个表,其余表用这个类的集合属性进行映射表示。 Set映射(常用) 建立两个表:users表和email表,字段如下。在email表中,userid可不设外键(在配置文件中实现)。 建立一个类:User类。同时映射users和email两个表。在User类中可用Set集合表示email表中的email字段,userid在映射文件中配置后由Hibernate生成。 映射文件。注意set/set中的内容。element/element表示Set集合中的元素,即email的地址(注意不是整个表,而只是email字段)。 保存User持久化对象时,将在users表和email表同时添加记录。 List映射 建立两个表:users和email。与Set映射时建立的表不同的是,email表要增加一个字段,用于存放添加List元素时的先后顺序(因为List是有顺序的)。 建立一个类:User类。同时映射users和email两个表。在User类中用List集合表示email表中的email字段,userid在映射文件中配置后由Hibernate生成。 映射文件。注意list/list中的内容。与set映射中除了标签不同外,还要增加一行: 。 保存User持久化对象时,将在users表和email表同时添加记录。 Bag映射 Set映射不可重复,不记录顺序;List映射可重复,但需记录顺序。而Bag映射可重复,且不记录顺序。 建表。与Set映射时相同,不需增加记录顺序的字段。 建类。Bag映射用Collection接口表示,用任意一个集合类型的实现类,如ArrayList初始化。 映射。与Set映射时相同,标签改为bag/bag。 保存。与Set、List映射相同。 IdBag映射 Bag映射的一种扩展,可重复,可记录顺序。与List映射很相似。 Map映射(常用) 一个用户有多个电话,如果只保存电话号码,使用Set、List、Bag、IdBag都可以,但如果还要保存电话号码是办公用、住宅用,还是手机,就要用到Map映射。 建表。users表和phone表,phone表三个字段:userid、phone_number、usage(说明电话号码是办公用还是住宅用,还是其它用途。usage和phone_number可用键/值对,即用Map映射表示。 建类。仍是一个User类,用Map集合表示phone表中的usage和phone_number两个字段,userid在配置文件中配置后由Hibernate生成。 映射。注意map/map中的内容,特别是键/值对的映射配置。 保存。由其余各种集合映射相同。 组件映射 组件映射的特点:一个表映射多个类。 建表。users表,结构如下: 建立两个类。一个user类(映射id、username、password和profile对象),一个profile类(映射email、address、postcode、mobile、phone)。将email、address、postcode、mobile、phone字段映射到profile类中作为一个组件,再将profile类的对象作为user类的属性。就称为组件映射。 映射。 保存。只保存user对象即可。 以上只实现了单向关联,若想实现双向关联,即从profile对象也可找到user对象,只需在以上的基础上,改动两个地方:A.在profile类中增加user对象属性。B.在映射文件的component/component中增加一行(下图中反白的那一行): 。 组件集合映射 组件集合映射其实和集合映射类似,只是在将集合作为属性时,集合里的元素不是表中的一个字段(基本类型),而是由组件(复合类型:类)映射表示。配置时,在set/set中添加: 。 也可实现双向关联,与组件映射时的双向关联类似,配置时,增加一行: 。 关联映射 多对一单向关联 建立两个表。其中category_id可不设外键(如设了外键,可由MyEclipse自动生成关联关系)。 建立两个类。Product类,其中字段category_id要映射为Category属性的对象;Category类。 建立两个映射文件。分别名为Product.hbm.xml和Category.hbm.xml。其中Product.hbm.xml添加many-to-one/many-to-one: 。 操作。 保存、更改、删除:当保存、更改和删除Product对象时,不会保存、更改和删除相应的Category。 读取:当读取Product时,可读相应的Category,只是默认情况下,先读取product表,到用

文档评论(0)

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

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

1亿VIP精品文档

相关文档