- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
—高级软件人才实作培训专家! 北京传智播客教育 (三)组件映射与继承映射 讲师:袁杰 北京传智播客教育 3.1. 组件映射 – 引入 回顾1:1 一个人一个IDCard,一个持久化类对应一个底层的关系表。 当维护一个类的时候,如果一个类中包含了另一个类我们称之为组合关系,如何 按照组合关系将两个类生成到一个关系表呢?解决方案:组合映射。 组件类和包含的组件类同时映射到一个表 北京传智播客教育 组件映射 – 实现 类的关系 类的映射 北京传智播客教育 3.2. 简单继承映射 父类和子类 映射 注意:当Animal的子类有很多的时候,就会有很多子类对应的表,那么如何查询出来所有的 Animal子类对象的记录? HQL “from Animal”,此时报错为没有指定的hbm文件,因此需要 在HQL语句查询的时候指定全类名。HQL “from cn.itcast.extend.Animal”即可 北京传智播客教育 继承映射(完整) 整个继承结构使用一张表 每个类一张表 父类不对应表 class name=“Animal” abstract=“true”, abstract=“true”表示不对应表 配置 union-subclass name=Cat table=t_cat property name=mouse/property /union-subclass 注意主键生成策略,不能为identity 北京传智播客教育 (四) 查询 北京传智播客教育 Hibernate3中持久化对象检索方式 OID方式 该方式就是根据每一个持久化类对象的id来加载数据库表中与之对应的持久化对 象。如:get(Class,Serializable)/load(Class,Serializable) 对象导航方式 根据已经查询出来的持久化对象,使用get()导航的获取其他与之相关联的对象。 如:Teacher t1 = session.get(,1); t1.getStudent(); HQL方式 Hibernate提供了Query接口,该接口主要是为了HQL进行检索对象提供的一个场所。From 类 as c where QBC方式 使用QBC(Query By Ctriteria)的API类进行持久化对象的检索。更 加面向对象。 北京传智播客教育 Hibernate3中HQL检索 查询全部 Query q1 = session.createQuery(from Customer); 排序查询 q1 = session.createQuery(from Customer as c order by c.age desc); 指定列查询 q1 = session.createQuery(select , c.age from Customer as c order by c.age desc); List list2 = q1.list(); // 查询的集合不是对象集合,是每一行的Object[]对象集合 指定列封装查询 q1 = session.createQuery(select new Customer(, c.age) from Customer as c order by c.age desc); 条件查询【命名参数查询。类比?查询】 q1 = session.createQuery(from Customer c where c.age :age) .setInteger(age, 40); q1 = session.createQuery(from Customer c where c.age :age and =:name) .setInteger(age, 40) .setString(name,王武); 北京传智播客教育 Hibernate3中HQL检索 单一行对象查询 Object obj1 = session.createQuery(from Customer c where c.age :age and =:name) .setInteg
原创力文档


文档评论(0)