`

Hibernate常见面试题

阅读更多

1.  请解释Hibernate3.2主键的生成方式中,nativeidentity方式的区别。

   Native主键生成方式会根据不同的底层数据库自动选择IdentitySequenceHilo主键生成方式

特点:根据不同的底层数据库采用不同的主键生成方式。由于Hibernate会根据底层数据库采用不同的映射方式,因此便于程序移植,项目中如果用到多个数据库时,可以使用这种方式。

  Identity当时根据底层数据库,来支持自动增长,不同的数据库用不同的主键增长方式。

  特点:与底层数据库有关,要求数据库支持Identity,如MySQl中是auto_increment, SQL Server 中是Identity,支持的数据库有MySqlSQL ServerDB2SybaseHypersonicSQL Identity无需Hibernate和用户的干涉,使用较为方便,但不便于在不同的数据库之间移植程序。

 

2.  请解释为什么SessionFactory一般以单利方式使用。

 

SessionFactory是一个大型对象,而且线程安全。在一个程序中只需要一个

3.  请解释说明hibernate配置文件中dialect属性的确切含义。

 

数据库方言:多种数据库拥有不同的语言语法,通过设置dialect指定所用的数据库,并生成对应语法和语言的sql语句。

4.  请解释说明Hibernate控制下的POJO会呈现三种状态,分别是transientpersistenetdetached,请解释这三种状态。

 

Trabsient暂态:数据库中没数据。跟session不相关。没存过。

Persistenet游离态:在数据库中有记录,但是在session中没有。需要手工同步。

Detached持久态:数据库中有记录,session中也有这记录。自动更新

5.  请解释Sessionload方法和get方法的不同;以及Querylistiterator方法的不同。

 

load():现在session缓存中寻找,如果找到了返回该对象,如果没找到,程序

会新建一个对象,并且返回,存在session中,不会在数据库中查找,在程序中如果没有用到这个实体类,可以节省一次数据库连接。如果在程序中用到了这个实体类,这个实体类就会在数据库去查找,如果没有查找到就会抛异常。

(延时加载)

 

get():在缓存在查找,如果找到该对象,返回该对象。如果没找到,会到数据库

中查找,如果数据库中有则返回该对象,如果没找到这返回空。(立即加载)

 

     

6.  Hibernate映射文件如下:

<class name=”Emp” table=”t_emp”>

<id name=”id” type=”integer”>………….</id>

<many-to-one name=”dept” class=”Dept” cascade=”save-update” column=”dept_id”

       Foreign-key=”fk_emp_dept”/>……</class>

写出hql语句用join fetch的方式查询出所有员工信息(包含所在的部门信息)

7.请解释cascade属性deletedelete-orphan的区别。

8.请解释inverse属性的作用,以及如何恰当是使用它优化查询的性能。

9.请解释Hibernate查询中出现的N+1问题,并提出解决方案。

10.请举例说明一对一关联映射的两种实现方式

11. Hibernate映射文件如下:

<class name="order" table="t_order">

<id name="id" type="integer">...</id>

<set name="items" cascade="save-update" inverse="false">

<key column="order_id" foreign-key="fk_item_order"/>

<one-to-many class="Item"/>

</set>

</class>

<class name="Item" table="t_item"> <id name="id" type="integer">

<property name="productName" type="string">

<column name="product_name" not-null="true" length="50"/>

</property>

</class>

请写出HQL:

1) 查询包含指定条目(Item)的所有订单(order

2) 分别使用select fetchjoin fetch两种方式查询所有的订单信息(

12.Hibernate映射文件如下:

<class name=“product table=“t_product>

    <id name="id" type="integer">

            <generator class="native"/>

    </id>

      <property name="name" type="string"/>

      <joined-subclass name="Book" table="t_book">

       <key column="id"/>

       <property name="author" type="string"/>

      </joined-subclass>

</class>

1) 查询指定name的所有Book信息

2 查询所有product信息(只需包含id和属性即可)

13.请举例说明如何使用discriminator标记和discriminator-value

属性实现将继承关系映射到一张表中的映射策略。

14、请解释说明dynamic-updatedynamic-delete属性的意义。

15、请举例说明formula属性的意义。

16、解释说明hibernate对分页查询的支持。

17,请简单描述使用Criteria进行条件查询的基本步骤;

18,请说明如何在Hibernate使用Native SQL

19,请简要的描述一下使用Hibernate进行大批量更新的经验;

20,请简要的描述一下使用Hibernate二级高速缓存的经验;

分享到:
评论

相关推荐

    Hibernate常见面试题汇总

    【Hibernate常见面试题汇总】 1. **数据库查询优化** - **建立索引**:索引可以大大提高查询速度,特别是针对频繁查询的列。 - **减少表间关联**:尽量减少JOIN操作,多表查询可能导致性能下降。 - **优化SQL**...

    spring、Struts2、hibernate常见面试题

    Spring、Struts2、Hibernate面试题详解 本文将详细解释 Spring、Struts2、Hibernate 面试题中的知识点,涵盖了 MVC 模式、Struts1.2 和 Struts2.0 的区别、单例模式、Servlet 依赖、可测试性、项目中使用 SSH 的...

    2022年Hibernate常见面试题汇总.doc

    以下是一些关于Hibernate的关键知识点,基于提供的面试题汇总: 1. **Hibernate工作流程**: Hibernate的工作流程包括: - 读取并解析配置文件:这涉及到`hibernate.cfg.xml`,其中包含了数据库连接信息。 - ...

    常见hibernate面试题.doc

    ### 常见Hibernate面试题知识点详解 #### 1. Hibernate查询数据的方式 - **导航对象图查询**:这是最基本的查询方式之一,适用于查询对象之间的关联关系。通过已知对象来导航到其他对象,比如通过一个`User`对象...

    hibernate面试题总结

    Hibernate是Java领域中一款流行的持久...以上就是Hibernate面试中常见的问题和答案,涵盖了基本概念、缓存策略、查询方式以及事务和数据访问等方面的知识点。理解并掌握这些内容对于深入学习和使用Hibernate至关重要。

    hibernate面试题2

    【hibernate面试题2】涉及了许多关于Hibernate框架的核心知识点,包括检索策略、SQL日志显示、缓存策略以及Hibernate与其他技术(如Spring和Struts)的整合。下面将逐一详细解析这些概念。 1. **Hibernate检索策略*...

    Hibernate面试题

    ### Hibernate常见面试题详解 #### 一、关系数据模型与对象模型之间的匹配关系 1. **表对应类**:在Hibernate中,一个数据库表通常对应一个Java类。这个类会包含对应于表中各列的属性,从而形成实体类与数据库表...

    常见hibernate面试题

    【Hibernate 框架面试详解】 1. **Hibernate 查询数据的方式** - 导航对象图查询:通过对象之间的关联关系直接获取数据。 - OID 查询:基于对象标识符(Object Identifier)查找对象。 - HQL(Hibernate Query ...

    struts hibernate spring 面试题大全

    - **面试题示例:**解释Hibernate的核心作用;如何配置和使用Hibernate;什么是HQL? 3. **Spring框架** Spring是一个全面的企业级应用开发框架,提供依赖注入(DI)和面向切面编程(AOP),还有其他模块如Spring...

    Struts+Hibernate+Spring常见面试题

    【面试题总结】 1. 了解Struts的工作流程和优缺点,理解Action的线程安全性问题。 2. 理解MVC模式,知道Struts如何实现MVC,以及MVC的组成部分。 3. 熟悉Spring的AOP和IOC概念,理解它们在Spring中的应用。 4. 掌握...

    Struts2+hibernate+spring的常见面试题

    在面试中,了解Struts2的核心组件及其与Struts1的区别是至关重要的。熟悉这些知识点可以帮助开发者在实际项目中更有效地利用Struts2框架,提高开发效率和应用的质量。同时,理解Web项目开发的角色划分和流程规范,也...

    java面试题,J2EE面试题 笔试题

    6、java常见面试题 7、java程序员面试宝典 8、java面试题及答案 9、java面试题编程篇 10、Oracle面试题 11、Oracle企业面试题集锦 12、Spring面试题 13、SSH面试题 14、Strut+Spring+Hibernate面试题 15、张孝祥整理...

    Hibernate常用的资料以及面试题

    11. **面试题** - Hibernate与JDBC的区别是什么? - 解释Hibernate的延迟加载和立即加载。 - 如何在Hibernate中处理级联操作? - 什么是Hibernate的N+1查询问题,如何避免? - 如何在Hibernate中实现多对多关联...

    Struts+Hibernate+Spring面试题合集及答案常见题目经典精选汇总大全.docx

    这些面试题涵盖了Hibernate、Struts和Spring的主要概念、工作原理和最佳实践,深入理解和掌握这些知识点对于Java开发者来说至关重要。在实际面试中,除了基础理论知识,面试官还会关注开发者在项目中如何应用这些...

    ( [尚硅谷]_佟刚_Hibernate面试题分析.zip

    【标题】:“尚硅谷_佟刚_Hibernate面试题分析” 【描述】提到的资源是针对Hibernate框架的一份面试题分析资料,由尚硅谷教育机构的讲师佟刚提供。该资源可能包含了对Hibernate在实际开发中常见问题的解答,以及...

    hibernate面试题

    在Java的持久化框架Hibernate中,面试经常涉及的关键知识点包括数据库优化、多表查询处理以及Session的load()和get()方法的区别。以下是对这些主题的深入解析: **数据库优化** 当面对数据库条件查询速度缓慢的问题...

    Hibernate面试题分析.zip

    《Hibernate面试题分析》 在Java开发领域,Hibernate作为一个强大的对象关系映射(ORM)框架,始终占据着举足轻重的地位。对于求职者来说,掌握Hibernate的基本概念、使用技巧以及常见问题的解决方法,是面试中必不...

    Java常见面试题208道.docx

    面试中,Java开发者需要对基础知识、容器、多线程、反射、对象拷贝、Java Web、异常处理、网络编程、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、消息中间件如RabbitMQ和Kafka、...

    java之SSH常见面试题

    【SSH常见面试题详解】 SSH 是 Java Web 开发中三个著名框架 Struts、Hibernate 和 Spring 的简称。这些框架分别负责模型-视图-控制器(MVC)架构的不同部分,为开发人员提供了一种高效且可扩展的方式来构建企业级...

Global site tag (gtag.js) - Google Analytics