当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:14:00  来源:本站整理

Hibernate常晤面试题汇总[Java编程]

赞助商链接



  本文“Hibernate常晤面试题汇总[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

1.在数据库中条件查询速度很慢的时刻,若何优化?

1.建索引

2.削减表之间的关联

3.优化sql,尽大概让sql很快定位数据,不要让sql做全表查询,应当走索引,把数据量大的表排在前面

4.简化查询字段,没用的字段不要,已经对返回后果的掌握,尽大概返回少量数据

2.在Hibernate中举行多表查询,每个表中各取几个字段,也就是说查询出来的后果集并没有一个实体类与之对应,若何办理这个问题?

办理筹划一,按照Object[]数据取出数据,然后自己组bean

办理筹划二,对每个表的bean写构造函数,比方表一要查出field1,field2两个字段,那么有一个构造函数就是Bean(type1 filed1,type2 field2) ,然后在hql里面便可以直接生成这个bean了.具体怎么用请看相关文档,我说的不是很清楚.

session.load()和session.get()的辨别

Session.load/get办法都可以按照指定的实体类和id从数据库读取记录,并返回与之对应的实体对象.其辨别在于:

假如未能发现符合条件的记录,get办法返回null,而load办法会抛出一个ObjectNotFoundException.

Load办法可返回实体的代理类实例,而get办法永久直接返回实体类.

load办法可以充分操纵内部缓存和二级缓存中的现有数据,而get办法例仅仅在内部缓存中举行数据查找,如没有发现对应数据,将越过二级缓存,直接调用SQL完成数据读取.

Session在加载实体对象时,将经过的历程:

首先,Hibernate中保持了两级缓存.第一级缓存由Session实例保护,此中保持了Session当前全部关联实体的数据,也称为内部缓存.而第二级缓存则存在于SessionFactory层次,由当前全部由本SessionFactory构造的Session实例同享.出于性能考虑,避免无谓的数据库拜候,Session在调用数据库查询功效之前,会先在缓存中举行查询.首先在第一级缓存中,通过实体范例和id举行查找,假如第一级缓存查找命中,且数据状况合理,则直接返回.

之后,Session会在当前“NonExists”记录中举行查找,假如“NonExists”记录中存在一样的查询条件,则返回null.“NonExists”记录了当前Session实例在之前全部查询操作中,未能查询到有效数据的查询条件(相当于一个查询黑名单列表).如此一来,假如Session中一个无效的查询条件反复呈现,便可疾速作出判断,从而得到最佳的性能表现.


  以上是“Hibernate常晤面试题汇总[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 在Hibernate里面动态切换SChema实现访谒差别的数据库的几种办法
  • Hibernate 3新增XML关系长期性介绍
  • Hibernate配置文件在单元测试中的操纵
  • 在Hibernate中动态切换Schema
  • hibernate annoation (八 关联映射)
  • hibernate annoation (九 cascading)
  • <b>hibernate annoation (十 映射查询)</b>
  • hibernate annoation(十一 缓存Ehcache 采纳annoation)
  • Hibernate:操作配置文件生成数据库
  • hibernate annoation (一 加载)
  • hibernate annoation (二 成立表)
  • <b>hibernate annoation (三 id生成器)</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .