Hibernate面试必备知识点与解析

需积分: 9 0 下载量 178 浏览量 更新于2024-09-11 收藏 57KB DOC 举报
"hibernate面试大全" 在面试中,掌握Hibernate的相关知识至关重要,因为它是Java领域中最流行的对象关系映射(ORM)框架之一。以下是一些关于Hibernate的重点面试问题和答案: 1. 关系数据模型与对象模型的匹配关系: - A) 表对应类:在ORM中,数据库的每个表通常映射到一个Java类。 - B) 记录对应对象:表中的每一行数据映射为类的一个实例或对象。 - C) 表的字段对应类的属性:表的列对应类的成员变量或属性。 - D) 表之间的参考关系对应类之间的关联关系:外键关系映射为类之间的引用或一对一、一对多、多对多关系。 2. SessionFactory的正确说法: - B) 一个SessionFactory对象对应一个数据库存储源:SessionFactory配置后,通常与特定的数据库连接相关联。 - C) SessionFactory是重量级的对象,不应频繁创建:它的创建成本高,建议全局共享。 - D) SessionFactory的load()方法用于加载持久化对象:它可以按主键检索已持久化的对象。 3. 映射Customer类中Set类型的orders属性: - 应该使用<set>元素来映射一对多关系,表示Customer类中Order对象的集合。 4. Hibernate级联保存集合中的对象: - cascade属性应设置为"save-update",这将使得在保存或更新父对象时,同时处理集合中的子对象。 5. Session的方法: - A) load():根据主键加载对象。 - B) save():保存新对象到数据库。 - C) delete():删除对象。 - D) update():更新对象状态。 - E) open():不是Session的方法,应该是getSession()来获取Session实例。 - F) close():关闭Session,释放资源。 6. 给定程序的打印结果: - 由于load()方法在同一个Session中多次调用同一个主键,它会返回相同的代理对象,所以输出为true。 7. 修改Customer的name属性两次: - 这段代码在事务内修改了对象的属性,但没有提交事务。如果只看这段代码,没有看到后续的事务提交或回滚,那么修改不会立即反映到数据库,但在事务结束后(假设被提交),数据库中的记录会被更新。 在面试中,理解这些基本概念和操作是至关重要的。此外,还要了解Hibernate的缓存机制、HQL(Hibernate Query Language)、 Criteria查询、事务管理、性能优化、懒加载和即时加载等高级主题。熟悉这些内容可以确保你在面试中展现出深厚的Hibernate知识基础。