Недавно я столкнулся с интервью F-to-F в компании. Интервьюер задал мне следующий вопрос:
Каковы различия между JPA EntityManager и Hibernate первого уровня кэширования? Пожалуйста, объясните подходящим примером.
Hibernate сам реализовал JPA через библиотеки аннотаций Hibernate и Hibernate EntityManager (или их варианты), которые построены поверх библиотек Hibernate Core. Hibernate EntityManager - это полная реализация JPA, и она соответствует жизненному циклу JPA
JPA подобен интерфейсу, который реализуется другими ORM, и эти ORM действуют как поставщик для этого. Итак, нет разницы в различии... и чтобы узнать больше, вы можете пройти через эту ссылку.
На самом деле трудно указать различия между этими двумя, так же как и просить различия между бананом и яблоком. Вот определение того и другого.
Менеджер сущностей
API EntityManager используется для доступа к базе данных в определенной единице работы. Он используется для создания и удаления постоянных экземпляров сущностей, для поиска объектов по их первичному идентификатору ключа и для запроса по всем объектам. Этот интерфейс похож на сеанс в спящем режиме.
от http://docs.jboss.org/hibernate/entitymanager/3.5/reference/en/html/architecture.html
Кэш Hibernate первого уровня
Это средство кеширования, подключенное к сеансу Hibernate для ускорения поиска данных.
Вот хорошая статья об этом, которая охватывает некоторые основные аспекты. http://howtodoinjava.com/2013/07/01/understanding-hibernate-first-level-cache-with-example/
Итак, я бы перечислил некоторые отличия: