hibernate_02_多对多_多对一_关联查询资料.ppt

hibernate_02_多对多_多对一_关联查询资料.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IT资讯交流网 WWW.IT315.ORG Hibernate 目录: 自动到手配置一个hibernate环境 表与表之间的关系 1对1,多对1/1对多,多对多。-? - bag,list,set 级联- cascade,invers HQL语句再说明- from SomeClass 关联查询 条件查询 -在关联查询与直接将数据封装成map,JavaBean或是直接返回object[]. 使用定义的SqL-在xml中定义。 使用原生的sql。 表与表之间的关系 1对1. -一个表的主键对应另一个表的主键。 1对多,多对1. - 一个表的主键对应另一个表的外键。 多对多。-使用第三方表完成多对多。 1对多的最简单实现:-外表只有一个列-简单映射 1对多的最简单实现:-外表只有一个列 实现具体操作:-保存/查询: 使用注解实现的简单的一对多: 复杂的一对多实现,每张表一个实例Bean: 1对多,多对1关联: 在Person方,使用set进行关联: 代码: 修改配置文件如下:-直接使用级联保存: 级联和关系维护 使用带关联的查询1: 使用带关联的查询2: 使用带关联的查询3:-将查询结果直接封装成Map: 使用带关联的查询4:使用Criteira的createAlias方法 使用带关联的查询5:-高级查询 使用List关联另一方: 再很多情况下,我们已经习惯使用List进行数据操作,这在Hibernate的只需要的简单的修改,即可以实现:-声明成List,并使用bag进行影射: 具体操作略。 用注解实现的一对多: 动态模型(Dynamic models) 运行期的持久化实体没有必要一定表示为像 POJO 类或 JavaBean 对象那样的形式。Hibernate 也支持动态模型 (在运行期使用 Map 的 Map)和象 DOM4J 的树模型那样的实体表示。使用这种方法,你不用写持久化类,只写映射文件就行了。 动态模型组件的配置/查询: 使用Map保存动态模型: 1对1关系: 1对1影射关系,一般情况非常少见。1对1中,一般为一个表的主键对应另一个表的主键或是对应另一个表的unique列。 基于主键的一对一。 基于主键对唯一键的一对一。 1对1关系:---基于主键对主键的一对一 1对1的配置文件:-基于主键对主键的一对一: 基于主键的一对一:保存/查询 基于注解的1对1: 主键对主键 测试代码: 查询,通过一个对像查询出另一个对像: 1对1关联的另一种方式: - 基于主键对唯一的一对一: 配置文件: 主键对唯一 增加操作: 使用注解实现的一对一:主键对唯一键 多对多-关联映射-使用中间表进行关联影射: 多对多-单向关联-从Teacher到Student(必须手工完成) 配置文件:多对多关联 让关联工作:-:保存: 多对多查询: 以下查询出,某些老师带哪些学生。 使用注解实现的多对多: 核心问题: @ManyToMany @Cascade @JoinColumn 其他关系:--组件映射:-通常使用组件映射来表达一些依赖关系 组件映射-示例 使用其他影射-简单了解: 除了前面在多对1时使用Set,和Bag之外,还可以使用List或是Map来影射,但List和map必须指定额外的值,如List要指定下标,map要指定Key.-在真实的开发中,很少使用List和map. 另有一种集合是Array.就不做介绍了。 使用List进行影射:-注意区分List与Bag的区别: 使用注解完成-List的1对多: 使用map进行影射-需要指定key值: 选择合适的集合影射你的类: 建议使用set. 建议使用bag. 其他关系:继承-使用一张表: 其他影射-继承每个子类一张表: 级联和关系维护的---再讨论 cascade经常使用的值说明: all : 所有情况下均进行关联操作。 none:所有情况下均不进行关联操作。这是默认值。 save-update:在执行save/update/saveOrUpdate时进行关联操 delete:在执行delete时进行关联操作. delete-orphan: 当save/update/saveOrUpdate时,相当于save-update ;当删除操作时,相当于delete ;,即相当于save-update,delete. -------------------- casecade设置应该出现在one-to-many方。 如果是many-to-many则一方出现cascade即可。 inverse不可以用在List,array等有序的集合中。 综合练习: 权限管理:用户、功能、角色。 要求:每个人可以拥有多种不同的角色。 要求:每个角色可以拥有

文档评论(0)

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

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

1亿VIP精品文档

相关文档