Spring 面试题, Spring 中的 JPA 和 Hibernate 有什么区别?
Spring 面试题, Spring 中的 JPA 和 Hibernate 有什么区别?
QA
Step 1
Q:: Spring 中的 JPA 和 Hibernate 有什么区别?
A:: JPA(Java Persistence API)是一种规范,它定义了一组标准用于对象关系映射(ORM),使得开发者可以通过统一的 API 操作不同的持久化框架。Hibernate 是 JPA 规范的一个具体实现,它提供了更多的功能和选项。主要区别在于:1)JPA 是一个规范,Hibernate 是 JPA 的实现;2)JPA 更加通用,允许开发者切换持久化实现,而 Hibernate 是特定的实现且提供更多的高级特性;3
)在使用 JPA 时,你可能会失去一些 Hibernate 提供的特性。
Step 2
Q:: Spring Data JPA 是什么?
A:: Spring Data JPA 是 Spring 框架的一部分,它简化了 JPA 的使用,减少了开发者需要编写的代码。它通过 repository 接口为 JPA 提供了自动化的数据访问层实现,支持动态查询生成、分页和排序等功能。
Step 3
Q:: 如何在 Spring 中配置 JPA?
A:: 在 Spring 中配置 JPA 通常涉及以下步骤:1)引入相关依赖(例如,Spring Data JPA、Hibernate 等);2)配置数据源(DataSource);3)配置 EntityManagerFactory 和 TransactionManager;4)使用 @Entity 注解标识实体类,@
Repository 或自定义 repository 接口来操作数据。
Step 4
Q:: Hibernate 的缓存机制是什么?
A:: Hibernate 提供了两级缓存机制:一级缓存(Session 缓存)和二级缓存(SessionFactory 缓存)。一级缓存是与 Hibernate 的会话(Session)绑定的,存在于整个会话期间,二级缓存是与 SessionFactory 绑定的,应用于跨会话的共享缓存。二级缓存可以通过多种策略进行配置,如读写缓存、事务缓存等。