В чем разница между JPA EntityManager и кэшированием первого уровня Hibernate?

1

Недавно я столкнулся с интервью F-to-F в компании. Интервьюер задал мне следующий вопрос:

Каковы различия между JPA EntityManager и Hibernate первого уровня кэширования? Пожалуйста, объясните подходящим примером.

  • 0
    так как ты ответил?
  • 0
    кажется нет ... :)
Показать ещё 2 комментария
Теги:
hibernate
jpa

2 ответа

2
Лучший ответ

Hibernate сам реализовал JPA через библиотеки аннотаций Hibernate и Hibernate EntityManager (или их варианты), которые построены поверх библиотек Hibernate Core. Hibernate EntityManager - это полная реализация JPA, и она соответствует жизненному циклу JPA

JPA подобен интерфейсу, который реализуется другими ORM, и эти ORM действуют как поставщик для этого. Итак, нет разницы в различии... и чтобы узнать больше, вы можете пройти через эту ссылку.

https://blogs.oracle.com/carolmcdonald/entry/jpa_caching

  • 0
    Это означает, что оба одинаковы. Но технологии меняются.
  • 0
    один похож на интерфейс, а другой - на его реализацию ... JPA работает в спящем режиме
Показать ещё 2 комментария
1

На самом деле трудно указать различия между этими двумя, так же как и просить различия между бананом и яблоком. Вот определение того и другого.

Менеджер сущностей

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/

Итак, я бы перечислил некоторые отличия:

  • Entity Manager является частью спецификации JPA (которая, следовательно, является стандартной для всей платформы Java EE.) Для доступа к базе данных через управляемые объекты.
  • Спящий режим Кэш первого уровня - это средство кэширования для возврата кэшированных объектов спящего режима (обратите внимание, что полужирным шрифтом, поскольку объекты спящего режима могут не быть одинаковыми объектами JPA).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню