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


解析:Load方法会报出异常,而get不会报出异常


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


解析:对二级缓存的理解更新频率低,常量数据,允许偶尔出现并发的数据适合故③④⑤适合放在二级缓存中


解析:

此题目考查的是对Hibernate主要从哪些方面优化查询性能的理解。A答案中分别指定了迫切左外连接、迫切内连接和查询缓存等方式,其中迫切左外连接和迫切内连接会将“左边”对象用于与“右边”对象关联的属性立即初始化,减少select语句的数目。同样地,查询缓存将一次查询的多条记录放入缓存,下次查询同样的一批记录时,不需要向数据库发起SQL语句,也可以减少select语句的数目。B答案中指定使用延迟加载策略来优化查询,延迟加载策略不立即加载与当前对象关联的对象,在第一次访问关联对象时才加载其信息,因此选项B也是Hibernate常用的性能优化措施之一。D答案中建议使用iterate方法,因为iterate方法可以将查询结果缓存在Session中,多次查询时,iterate首先查询ID字段,然后根据ID字段到Hibernate的Session缓存中查找匹配的持久化对象。如果存在,就直接把它加入到查询结果集中,否则就执行额外的select语句,根据ID字段到数据库中查询对象。C答案将性能优化的重点放在了数据库上,没有提到Hibernate中相关的措施。由于本题要求选择不是Hibernate中查询性能优化措施的选项,因此选项A、B、D是错误的,选项C是正确的。

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


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


解析:hibernate的缓存原理


解析:本题考查的是batch-size的属性配置。batch-size主要控制的是SQL语句的生成,而不是查询结果的记录数,因此A选项不正确,batch-size的默认值为1,但不是越大越好,合理的取值范围为2-10因此选项CD不正确。


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


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


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


解析:此题目考查的是Hibernate关系映射的使用。每个人有不同的名字这说明是一对一的关系人和人名不重复,多个人可以是同一个名字为对第一的关系。所以本题正确选项是AC。


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


解析:此题目考查的是Hibernate二级缓存相关内容。Hibernate的二级缓存策略,是针对于ID查询的缓存策略,经常被查询的数据,在没有条件时是可以用二级缓存的,因此答案应是D。


解析:此题目考查的是Hibernate二级缓存配置。首先要加载ehcache.xml,然后在配置文件中配置开启二级缓存信息,之后还有在配置文件上配置缓存产品提供商的信息,最后在修改持久化类的映射文件,因此答案应是B。


解析:C二级缓存和查询缓存需要在开启二级缓存才可以进行交互


解析:

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

解析:题目考查的是Hibernate持久化层的缓存的并发访问策略,只读型:对于从来不会被修改的数据,所以本题正确选项是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属性才是初始化好的。


解析:此题目考查的是对缓存的理解,查询少,变更多时,使用缓存反而会降低性能,所以a、b错误。如果按照id查询,可在id列上增加索引,但如果对每一列都增加索引可能会降低插入和修改性能,因此d错误。应选择C


解析:此题目考查的是hibernate中如何配置一对一关系,user应该持有card属性,因此a和c错误,一对一映射不需要用property标签,d错误,应选择b


总结:hibernate使我快乐!!!

												

Hibernate的第一次测试解析的更多相关文章

  1. Hibernate一级缓存测试分析

    Hibernate 一级缓存测试分析 Hibernate的一级缓存就是指Session缓存,此Session非http的session会话技术,可以理解为JDBC的Connection,连接会话,Se ...

  2. 004.测试解析php,安装discuz

    一.配置解析php 编辑nginx配置文件/usr/local/nginx/conf/nginx.conf [root@huh ~]# vim /usr/local/nginx/conf/nginx. ...

  3. Hibernate懒加载解析

    Hibernate懒加载解析 在Hibernate框架中,当我们要访问的数据量过大时,明显用缓存不太合适, 因为内存容量有限 ,为了减少并发量,减少系统资源的消耗,这时Hibernate用懒加载机制来 ...

  4. 2018.10.19浪在ACM 集训队第一次测试赛

    2018.10.19浪在ACM 集训队第一次测试赛 待参考资料: [1]:https://blog.csdn.net/XLno_name/article/details/78559973?utm_so ...

  5. idea中Hibernate错误:无法解析表

    idea中Hibernate错误:无法解析表 这种情况主要是在idea中使用hibernate自定义注解,idea无法检查数据源 this inspecton controls whether the ...

  6. python网络爬虫。第一次测试-有道翻译

    2018-03-0720:53:56 成功的效果如下 代码备份 # -*- coding: UTF-8 -*- from urllib import request from urllib impor ...

  7. [原创]java WEB学习笔记77:Hibernate学习之路---Hibernate 版本 helloword 与 解析,.环境搭建,hibernate.cfg.xml文件及参数说明,持久化类,对象-关系映射文件.hbm.xml,Hibernate API (Configuration 类,SessionFactory 接口,Session 接口,Transaction(事务))

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  8. Hibernate——hibernate的配置测试

    Hibernate Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自 ...

  9. Hibernate 缓存机制详细解析

    一.why(为什么要用Hibernate缓存?) Hibernate是一个持久层框架,经常访问物理数据库. 为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能. 缓存内的数据是对物理数 ...

随机推荐

  1. unfortunately launcher has stopped

    设定虚拟机的配置.

  2. Codeforces Alpha Round #20 (Codeforces format) C. Dijkstra?(裸的dijkstra)

    题目链接:http://codeforces.com/problemset/problem/20/C 思路:需要用优化过的dijkstra,提供两种写法. #include <iostream& ...

  3. input实时监控和获取焦点的问题,oninput,ononfocus

    1.input监控实时输入问题,google浏览器使用oninput,其他浏览器(IE6/7/8)使用onpropertychange var ie = !!window.ActiveXObject; ...

  4. 启动Tomcat服务器报错: Several ports (8005, 8080, 8009) required

    错误记录--更改tomcat端口号方法,Several ports (8005, 8080, 8009) http://blog.csdn.net/xinxin19881112/article/det ...

  5. 循环冗余检验算法CRC

    http://blog.csdn.net/liyuanbhu/article/details/7882789 首先要了解多项式乘法,除法 了解模2运算的含义,多项式除法后合并同类项时..系数%2处理 ...

  6. LOAD和PigStorage的一些测试例子 (转)

    原地址:http://f.dataguru.cn/thread-233064-1-1.htm 因为理解上的错误,在这里被搞糊涂了.通过做测试,应该算是澄清了,所以写出来. 假设有个文件叫test,该文 ...

  7. Almost Sorted Array

    http://acm.hdu.edu.cn/contests/contest_showproblem.php?cid=646&pid=1006 #include<iostream> ...

  8. 开发Portlet第三步:如何在Crystal Portlet中调用远程服务?

    当基于测试数据的Portlet调试完成后,接下来就是引入远程服务,替换测试数据. (此处以Dubbo框架远程服务为例) 分步指南 删除测试数据依赖:在pom.xml文件中,删除对****-servic ...

  9. hdu1159 最长公共子序列

    Common Subsequence Problem Description A subsequence of a given sequence is the given sequence with ...

  10. Codeforces Round #375 (Div. 2) - B

    题目链接:http://codeforces.com/contest/723/problem/B 题意:给定一个字符串.只包含_,大小写字母,左右括号(保证不会出现括号里面套括号的情况),_分隔开单词 ...