解析:

此题目考查的是对Hibernate中交叉连接的理解。HQL支持SQL风格的交叉连接查询,交叉连接适用于两个类之间没有定义任何关联时。
在where字句中,通过属性作为筛选条件,如统计报表数据。使用交叉连接时应避免“from Dept,Emp”这样的语句出现。执行这条HQL
查询语句,返回DEPT表和EMP表的交叉组合,结果集的记录数为两个表的记录数之积,也就是数据库中的笛卡尔积。这样的查询结果没有
实际意义,因此选项b是正确的。A和C答案都是符合上述描述的,是适合使用交叉连接的场合。D答案认为以上三种都适合,与上述描述冲
突。由于题目要求选择不适合使用交叉连接的选项,因此选项B、C、D是错误的。


解析:第二次查询要说明是从缓存中查询


解析:
答案A中,HQL的select语句中的类名和属性名是区分大小写的;答案B中,HQL是支持统计函数的;
答案D中,绑定参数的序号从0开始。所以ABD都不正确,只有C是正确的。因此答案是c。



解析:

B答案不是hibernate中list方法返回结果的正确类型,list方法只会返回List集合类型,因此选项B是错误的。
C和D答案是迷惑选项,因为HQL语句中对Dept部门和d.emps部门员工进行了连接查询,查询结果中同时包括Dept
和d.emps的属性,它们既不会被造型为Dept,也不会被造型为Emp,因此选项C和D是错误的。A答案返回的是List
类型,同时指定List的泛型为Object[],数组中第一个元素是Dept类型,包含Dept的属性集。数组中第二个元素
是Emp类型,包含Emp的属性集,因此选项A是正确的。




解析:
因为没有center join语法,所以C错;
因为题目是用cross join,所以AB错


解析:one-to-one配置的查询,必须查询到另一个实体


解析:经常被修改的数据需要一级缓存存储,而二级缓存存储查询的数据和常量数据。财务数据存储一些重要的数据,
不只是需要简单的查询,需要修改,所以需要用一级缓存进行存储。


解析:Session为一级缓存,SessionFactory为二级缓存


解析:
学员应注意二级缓存使用的要求。二级缓存使用时,经常被修改的数据不适用与放入二级缓存,因此A不正确;
在多个应用之间共享的数据也不适合加入二级缓存,因为Hibernate不能自动保证在一个应用修改其中数据后
缓存数据会与数据库保持一致,因此B不正确。


解析:
因为如 A right join B 即取出B表的所有数据,由on条件关联的A表数据,有则显示,没有则为空;所以B错;


解析:
 inner join [fetch]为内连接的语法,left [outer] join 为左外连接的语法,right [outer] join为右外连接的语法,[inner] join fetch为迫切内连接的语法,所以本题正确选项是C。


解析:

本题考查的是HQL内连接与迫切内连接的区别。选项A的说法不正确,因为只有迫切内连接才会立即加载连接数据,普通内连接在初始化时set集合并不会立即加载数据。
选项B的说法是正确的,emps集合不会被初始化。选项C的说法也是正确的,第二句是迫切内连接,所以数据会立即加载。选项D是误导选项。


解析:

本题中唯一错误的选项为D,因为fetch只对inner join 和left join有效,对right join无效。


解析:
在HQL查询语句中,如果通过对Emp类赋别名“e”,可以通过e.dept.dname的形式访问dept对象的dname属性,
使用隐式内连接按部门条件查询员工信息,因此选项B是正确的。另外也可以显式使用inner join关键字内连接
e.dept对象,因此选项C也是正确的。A答案中虽然使用了inner join关键字,但是连接对象使用不正确,这样
做会导致“could not found the property Dept of Emp”的错误,即在Emp类中找不到叫作Dept的属性。
原因是Hibernate是一款基于ORM的解决方案,在HQL语句执行之前已经对表和持久化对象作了映射,Hibernate
只知道Emp中有dept属性,而不知道Dept,因此选项A是错误的。B答案是照搬SQL语句的写法,该写法用在HQL中
会导致将“研发部”这个部门对象与每一个Emp员工对象匹配的结果,总记录数等于Emp员工的记录数,因此选项B是错误的。


解析:
对于经常使用的查询语句,如果启用了查询缓存,当第一次执行查询语句时,Hibernate会把查询结果存放在第二缓存中。以后再次执行该查询语句时,
只需从缓存中获得查询结果,从而提高查询性能。所以本题正确选项是AB。


解析:
在HQL迫切连接中,fetch关键字只对inner join和left join有效。对于right join而言,
由于作为关联对象容器的“左边”对象可能为null,所以也就无法通过fetch关键字强制Hibernate
进行集合填充操作,因此选项a是正确的。B答案是将fetch用在迫切左外连接的正确用法。C答案是
将fetch用在显示迫切内连接的正确用法。D答案是将fetch用在隐示迫切内连接的正确用法。由于
题目要求选择用法不正确的选项,因此选项B、C、D是错误的。


解析:
A一级缓存和二级缓存能进行交互,需要配置 关闭二级缓存
B 没有此配法
C 可以在相应的映射进行配置
D 正确


解析:
执行from Dept d inner join d.emps返回的集合中,每个元素是一个Object[ ];
执行from Dept d inner join fetch d.emps返回的集合中,每个元素是一个Dept对象。
执行from Dept d inner join d.emps所得到的Dept对象中的emps属性是未初始化,即
没有存储关联的Emp对象;执行from Dept d inner join fetch d.emps所得到的Dept
对象中的emps属性才是初始化好的。


解析:B、数据库可以永久保存数据,而且有访问权限,可以保证数据的安全性。
D、添加事务操作才能对数据进行操作,锁主要用于多用户环境下保证数据库完整性和一致性。

 





 

 

												

01 Hibernate错题分析的更多相关文章

  1. 03 Hibernate错题分析

    1.在Hibernate中,以下关于主键生成器说法错误的是( C). A.increment可以用于类型为long.short或byte的主键 B.identity用于如SQL Server.DB2. ...

  2. 02 Hibernate错题分析

    解析:使用final修饰的成员变量是常量 解析:不存在StateMoreSession的对象 解析:一个PreparedStatement 可以执行多次executQuery方法 解析:A   使用H ...

  3. Hibernate 错题分析

  4. hibernate错题解析

    01 Hibernate错题分析   解析: 此题目考查的是对Hibernate中交叉连接的理解.HQL支持SQL风格的交叉连接查询,交叉连接适用于两个类之间没有定义任何关联时.在where字句中,通 ...

  5. jQuery考试之错题分析

    获取元素范围大小顺序依次为: $(#one).siblings("div")>$("#one~div")>$("#one +div&quo ...

  6. Jsp 错题分析

    ArrayList删除元素通过RemoveAt(int index)来删除指定索引值的元素 运行时异常都是RuntimeException类及其子类异常,如NullPointerException.I ...

  7. 错题分析--ASP.NET

    解析:支架模板支持的类型包括Empty.Create.Delete.Details.Edit.List 解析:Spring支持4种依赖检查:默认的是none.因此说法不正确的结果是D 解析:各层之间不 ...

  8. UI测试 错题分析

    从服务器端获取的json对象,可以直接访问对象中的属性 该属性的作用就是C text属性显示节点文本,state属性默认为open 看错行  不能用 ' ' 包裹 state:节点状态,'open' ...

  9. orcale错题分析

    删除同义词语法正确的是: Drop  synonym sy nonym_name; 关于Oracle创建间隔分区后,正确的是: 使用partition(分区名)可以查看特定分区内存放的表记录 关于序列 ...

随机推荐

  1. loading插件(原创)

    前言:服务器这几天都连不上,所以迟迟未更新,今天连上后才把插件文件和文档上传了.良心之作啊,难度虽不高,但命名多文件多啊.我得马上写篇博客絮叨一下,直接上地址. 文档及下载地址:www.chenggu ...

  2. Web UI - Javascript之DOM Ready

    最近终于稍微适应了工作环境,终于可以让自己缓口气.于是决定要写点东西,算是督促.记录和提升自己的学习.代码的世界,你不轮它,以后就会被它轮.这个系列尽量保持在一周或两周更一篇,目标是在创造内容的时候更 ...

  3. 几个有用的JSON工具

    好久没写博客了,这里都要长草了:) 这几天研究PLM360 REST API和Infraworks REST API,一天到晚和JSON打交道,发现这几个小工具非常好用,推荐给大家. 第0个,大名鼎鼎 ...

  4. clang 搭建和编译boost 和zero ICE库 (Ubuntu10 64)

    相关介绍资料如下: Boost编译http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.gz/downlo ...

  5. Udp通讯(零基础)

    前面学习了Tcp通讯之后听老师同学们讲到Udp也可以通讯,实现还要跟简单,没有繁琐的连接,所以最近学习了一下,记录下来以便忘记,同时也发表出来与大家相互学习,下面是我自己写的一个聊天例子,实现了群聊私 ...

  6. ios7 tableview被navigationbar挡住

    用ego下拉刷新的时候,每次在ios7时,tableview都会上移...导致被navagationbar挡住.ios6是正常的,于是在init的时候添加如下代码... NSComparisonRes ...

  7. 【iOS】小项目框架设计(ReactiveCocoa+MVVM+AFNetworking+FMDB)

    上一个项目使用到了ReactiveCocoa+MVVM+AFNetworking+FMDB框架设计,从最初的尝试,到后来不断思考和学习,现在对这样一个整体设计还是有了一定了理解与心得.在此与大家分享下 ...

  8. 【代码笔记】iOS-scrollerView里多个tableView加搜索框

    一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> #import "customCell.h&qu ...

  9. Git笔记1

    1.简介 1.1 GIT(分布式版本控制系统) Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非 ...

  10. ORACLE AWR报告数据的导入导出实践

    关于AWR的快照数据可以导出.导入,一直没有亲手实践过.今天动手测试了一下如何导出.导入AWR数据,将AWR的数据从一测试服务器,导入到另外一台测试服务器. SQL> @?/rdbms/admi ...