hibernate复杂实体映射.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
hibernate复杂实体映射

联合主键: 例如,Student类要用firstname和lastname作为联合主键 @类直接包含firstname和lastname,此时类Student必须实现接口Serializable,并且要定义equals()和hashCode()方法;Student.hbm.xml文件中用如下配置: composite-id key-property name=firstname column=first_name type=java.lang.String/ key-property name=lastname column=last_name type=java.lang.String/ /composite-id @将联合主键涉及到的列单独定义在一个类中,以主键类的形式出现在实体类中: 如上例则是将firstname lastname作为类StudentId的属性,而StudentId则作为Student类的属性存在,StudentId和Student类都要实现接口Serializable,并实现两个方法。而在Student.hbm.xml文件中的配置如下: composite-id name=id class=com.oristand.StudentId key-property name=firstname type=java.lang.String column name=first_name length=16/ /key-property key-property name=lastname type=java.lang.String column name=last_name length=16/ /key-property /composite 使用联合主键映射方式的操作(增删改查)时,需要同时知道联合主键的全部属性值 2. 组合映射 例如一个数据表字段中包含两个地址,一个是家庭地址,一个是办公地址,都包含城市,街道和邮政编码,在这样的情况下可以用组合映射的方式来完成对象关系映射关系。可以在Person.hbm.xml配置文件中加入如下代码: component name=address class=com.oristand.Address property name=city column=address_city type=string/ property name=street column=address_street type=string/ property name=zipcode column=address_zipcode type=stirng/ /componet component name=mailAddress class=com.oristand.MailAddress property name=city column=mail_city type=string/ property name=street column=mail_city type=string/ property name=zipcode column=mail_zipcode type=string/ /component 3, 集合类映射: @集合类通常用来存储一组对像,常用的集合类包括Collection接口的子类Set和List,Map等,在配置文件中加入如下配置: set name=topics table=topic key column name=id precision=22 scale=0 not-null=true/ /key element type=java.lang.String column=topic_name/ /set 关联映射:一对多/多对一 例如:Employee(员工,多方),Department(部门,一方) 则在Employee.hbm.xml中要加入如下代码: many-to-one name=department class=com.oristand.Department fetch=select cascade=save-update column name=dept_id precision=22 scale=0/ /many-to-one 在Department.hbm.xml中要加入如下代码: set name=employees cascade=save-update key column name=dept_id precision=22 scale=0/ /key one-to-many class=com.oristand.Employee/ /set 注意:一对多/多对一关联关

文档评论(0)

xy88118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档