1. 请解释Hibernate3.2主键的生成方式中,native和identity方式的区别。
Native主键生成方式会根据不同的底层数据库自动选择Identity、Sequence、Hilo主键生成方式
特点:根据不同的底层数据库采用不同的主键生成方式。由于Hibernate会根据底层数据库采用不同的映射方式,因此便于程序移植,项目中如果用到多个数据库时,可以使用这种方式。
Identity当时根据底层数据库,来支持自动增长,不同的数据库用不同的主键增长方式。
特点:与底层数据库有关,要求数据库支持Identity,如MySQl中是auto_increment, SQL Server 中是Identity,支持的数据库有MySql、SQL Server、DB2、Sybase和HypersonicSQL。 Identity无需Hibernate和用户的干涉,使用较为方便,但不便于在不同的数据库之间移植程序。
2. 请解释为什么SessionFactory一般以单利方式使用。
SessionFactory是一个大型对象,而且线程安全。在一个程序中只需要一个
3. 请解释说明hibernate配置文件中dialect属性的确切含义。
数据库方言:多种数据库拥有不同的语言语法,通过设置dialect指定所用的数据库,并生成对应语法和语言的sql语句。
4. 请解释说明Hibernate控制下的POJO会呈现三种状态,分别是transient、persistenet和detached,请解释这三种状态。
Trabsient:暂态:数据库中没数据。跟session不相关。没存过。
Persistenet:游离态:在数据库中有记录,但是在session中没有。需要手工同步。
Detached:持久态:数据库中有记录,session中也有这记录。自动更新
5. 请解释Session的load方法和get方法的不同;以及Query的list和iterator方法的不同。
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属性delete和delete-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 fetch和join 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-update和dynamic-delete属性的意义。
15、请举例说明formula属性的意义。
16、解释说明hibernate对分页查询的支持。
17,请简单描述使用Criteria进行条件查询的基本步骤;
18,请说明如何在Hibernate使用Native SQL;
19,请简要的描述一下使用Hibernate进行大批量更新的经验;
20,请简要的描述一下使用Hibernate二级高速缓存的经验;
分享到:
相关推荐
【Hibernate常见面试题汇总】 1. **数据库查询优化** - **建立索引**:索引可以大大提高查询速度,特别是针对频繁查询的列。 - **减少表间关联**:尽量减少JOIN操作,多表查询可能导致性能下降。 - **优化SQL**...
Spring、Struts2、Hibernate面试题详解 本文将详细解释 Spring、Struts2、Hibernate 面试题中的知识点,涵盖了 MVC 模式、Struts1.2 和 Struts2.0 的区别、单例模式、Servlet 依赖、可测试性、项目中使用 SSH 的...
以下是一些关于Hibernate的关键知识点,基于提供的面试题汇总: 1. **Hibernate工作流程**: Hibernate的工作流程包括: - 读取并解析配置文件:这涉及到`hibernate.cfg.xml`,其中包含了数据库连接信息。 - ...
### 常见Hibernate面试题知识点详解 #### 1. Hibernate查询数据的方式 - **导航对象图查询**:这是最基本的查询方式之一,适用于查询对象之间的关联关系。通过已知对象来导航到其他对象,比如通过一个`User`对象...
Hibernate是Java领域中一款流行的持久...以上就是Hibernate面试中常见的问题和答案,涵盖了基本概念、缓存策略、查询方式以及事务和数据访问等方面的知识点。理解并掌握这些内容对于深入学习和使用Hibernate至关重要。
【hibernate面试题2】涉及了许多关于Hibernate框架的核心知识点,包括检索策略、SQL日志显示、缓存策略以及Hibernate与其他技术(如Spring和Struts)的整合。下面将逐一详细解析这些概念。 1. **Hibernate检索策略*...
### Hibernate常见面试题详解 #### 一、关系数据模型与对象模型之间的匹配关系 1. **表对应类**:在Hibernate中,一个数据库表通常对应一个Java类。这个类会包含对应于表中各列的属性,从而形成实体类与数据库表...
【Hibernate 框架面试详解】 1. **Hibernate 查询数据的方式** - 导航对象图查询:通过对象之间的关联关系直接获取数据。 - OID 查询:基于对象标识符(Object Identifier)查找对象。 - HQL(Hibernate Query ...
- **面试题示例:**解释Hibernate的核心作用;如何配置和使用Hibernate;什么是HQL? 3. **Spring框架** Spring是一个全面的企业级应用开发框架,提供依赖注入(DI)和面向切面编程(AOP),还有其他模块如Spring...
【面试题总结】 1. 了解Struts的工作流程和优缺点,理解Action的线程安全性问题。 2. 理解MVC模式,知道Struts如何实现MVC,以及MVC的组成部分。 3. 熟悉Spring的AOP和IOC概念,理解它们在Spring中的应用。 4. 掌握...
在面试中,了解Struts2的核心组件及其与Struts1的区别是至关重要的。熟悉这些知识点可以帮助开发者在实际项目中更有效地利用Struts2框架,提高开发效率和应用的质量。同时,理解Web项目开发的角色划分和流程规范,也...
6、java常见面试题 7、java程序员面试宝典 8、java面试题及答案 9、java面试题编程篇 10、Oracle面试题 11、Oracle企业面试题集锦 12、Spring面试题 13、SSH面试题 14、Strut+Spring+Hibernate面试题 15、张孝祥整理...
11. **面试题** - Hibernate与JDBC的区别是什么? - 解释Hibernate的延迟加载和立即加载。 - 如何在Hibernate中处理级联操作? - 什么是Hibernate的N+1查询问题,如何避免? - 如何在Hibernate中实现多对多关联...
这些面试题涵盖了Hibernate、Struts和Spring的主要概念、工作原理和最佳实践,深入理解和掌握这些知识点对于Java开发者来说至关重要。在实际面试中,除了基础理论知识,面试官还会关注开发者在项目中如何应用这些...
【标题】:“尚硅谷_佟刚_Hibernate面试题分析” 【描述】提到的资源是针对Hibernate框架的一份面试题分析资料,由尚硅谷教育机构的讲师佟刚提供。该资源可能包含了对Hibernate在实际开发中常见问题的解答,以及...
在Java的持久化框架Hibernate中,面试经常涉及的关键知识点包括数据库优化、多表查询处理以及Session的load()和get()方法的区别。以下是对这些主题的深入解析: **数据库优化** 当面对数据库条件查询速度缓慢的问题...
《Hibernate面试题分析》 在Java开发领域,Hibernate作为一个强大的对象关系映射(ORM)框架,始终占据着举足轻重的地位。对于求职者来说,掌握Hibernate的基本概念、使用技巧以及常见问题的解决方法,是面试中必不...
面试中,Java开发者需要对基础知识、容器、多线程、反射、对象拷贝、Java Web、异常处理、网络编程、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、消息中间件如RabbitMQ和Kafka、...
【SSH常见面试题详解】 SSH 是 Java Web 开发中三个著名框架 Struts、Hibernate 和 Spring 的简称。这些框架分别负责模型-视图-控制器(MVC)架构的不同部分,为开发人员提供了一种高效且可扩展的方式来构建企业级...