20 самых распространенных вопросов и ответов на собеседовании по Hibernate [для новичков и опытных]

Опубликовано: 2020-12-31

Долгое время Java занимала одну из первых позиций в списке самых популярных языков программирования. Естественно, будучи высокоприоритетным языком программирования, предпочитаемым разработчиками во всем мире, Java сопровождается огромным набором инструментов, библиотек и фреймворков. В этом посте мы поговорим о популярном Java-фреймворке Hibernate.

Любой, кто работал или работает с Java, хорошо осведомлен о Hibernate и его возможностях. Однако давайте разберем это для тех из вас, кто только что встретил это имя — Hibernate.

Оглавление

Что такое гибернация?

Hibernate — это инструмент ORM (объектно-реляционное сопоставление), разработанный исключительно для Java. другими словами, он предлагает структуру, помогающую сопоставить объектно-ориентированную модель с реляционной базой данных. Hibernate в первую очередь фокусируется на сопоставлении классов Java с таблицами базы данных и сопоставлении типов данных Java с типами данных SQL .

Hibernate также расширяет службы запросов и извлечения данных. Он написан на Java и основан на JVM. Hibernate предлагает эталонные реализации Java Persistence API, что делает его отличным выбором для ORM (объектно-реляционного сопоставления). Мы можем использовать API сохраняемости Hibernate для операций CRUD.

Первоначально Hibernate разрабатывался как более простая и лучшая альтернатива EJB2 (Enterprise Java Beans версии 2). Сегодня Hibernate может похвастаться тем, что является одним из наиболее широко используемых инструментов ORM для приложений Java.

Он широко используется для разработки корпоративных приложений на основе Java для операций с базами данных. Кроме того, Hibernate Persistence API отлично подходит для операций CRUD.

Теперь, когда у вас есть некоторые базовые знания о Hibernate, давайте немного познакомимся с этим инструментом ORM с помощью этих вопросов интервью X Hibernate!

Запишитесь на курсы по разработке программного обеспечения в лучших университетах мира. Участвуйте в программах Executive PG, Advanced Certificate Programs или Master Programs, чтобы ускорить свою карьеру.

Hibernate Интервью Вопросы и ответы

1.Что такое ОРМ?

ORM (реляционное сопоставление объектов) относится к методу сопоставления объектов с данными, хранящимися в базе данных. Целью ORM является упрощение создания данных, доступа к данным и манипулирования данными.

2.Что такое JPA?

Java Persistence API (JPA) — это спецификация, которая устанавливает стандарты и функциональные возможности для инструментов ORM. Вы можете получить доступ к классам и интерфейсам JPA из пакета javax.persistence . Все спецификации JPA определяются с помощью аннотаций в пакете javax.persistence. Преимущество использования аннотаций JPA заключается в том, что они позволяют писать независимый от реализации код.

3. Какие важные аннотации JPA используются для сопоставления Hibernate?

Hibernate поддерживает аннотации JPA наряду со многими другими аннотациями, к которым вы можете получить доступ через пакет org.hibernate.annotations. Вот семь наиболее важных аннотаций JPA:

javax.persistence.Entity — используется в сочетании с классами моделей для объявления их как компонентов управления данными.

javax.persistence.Table — используется с объектными компонентами для определения соответствующего имени таблицы в базе данных.

javax.persistence.Access — используется для указания типа доступа, поля или свойства. Значением по умолчанию для этой аннотации является поле.

javax.persistence.Id — определяет первичный ключ в объектном компоненте.

javax.persistence.EmbeddedId — используется для указания составного первичного ключа в объектном компоненте.

javax.persistence.Column — указывает имя столбца в таблице базы данных.

javax.persistence.GeneratedValue — определяет стратегию, необходимую для генерации первичного ключа.

4. Определите HQL

HQL расшифровывается как язык запросов Hibernate. Это объектно-ориентированный язык запросов, независимый от базы данных.

5. Как бы вы выполнили сопоставление в спящем режиме?

Функция сопоставления ассоциаций Hibernate упрощает сопоставление, поддерживая четыре стандартные ассоциации, такие же, как и в модели реляционной базы данных:

  • Ассоциации один на один
  • Ассоциации «один ко многим»
  • Ассоциации «многие к одному»
  • Ассоциации «многие ко многим»

Каждая из этих ассоциаций может быть отображена как однонаправленная или двунаправленная ассоциация.

6.Назовите основные интерфейсы/компоненты Hibernate.

Hibernate имеет шесть основных интерфейсов — Configuration, SessionFactory, Session, Query, Criteria и Transaction.

7.Можно ли создать SQL-запрос в Hibernate?

Да, вы можете создавать SQL-запросы в Hibernate. Для создания SQL-запроса необходимо использовать следующий синтаксис:

Session.createSQLQuery

8.Что такое файл конфигурации Hibernate?

В файле конфигурации Hibernate хранятся настройки, специфичные для базы данных. Он используется для инициализации интерфейса SessionFactory. Этот файл также содержит другую важную информацию, такую ​​как информация о диалекте, которая позволяет Hibernate знать тип базы данных и сведения о файле/классе сопоставления.

9.Что такое постоянный класс?

В Hibernate классы, объекты и экземпляры которых хранятся в классах базы данных, называются персистентными классами.

10.Определить сеанс

Интерфейс сеанса находится между Hibernate и уровнем приложения Java. Он в основном используется для выполнения операций с базой данных. Сессия помогает установить и поддерживать соединение между приложением Hibernate и базой данных. Он предлагает различные методы для выполнения операций создания, чтения, обновления и удаления для постоянных объектов.

Кроме того, Session действует как фабрика запросов, критериев и транзакций, то есть расширяет фабричные методы для возврата этих экземпляров. Вы можете использовать объект Session для создания критериев и выполнения запросов HQL и собственных запросов SQL.

11. Определите фабрику сеансов.

В Hibernate SessionFactory — это фабричный класс, используемый для доступа к объектам Session. Он считывает параметры конфигурации Hibernate и подключается к базе данных для получения объектов Session. SessionFactory по сути является фабрикой Session и предоставляет экземпляр Session.

После создания SessionFactory его внутреннее состояние фиксируется, что делает его неизменяемым. Внутреннее состояние SessionFactory содержит полные метаданные Object/Relational Mapping.

12. Различайте файл конфигурации Hibernate и файл сопоставления Hibernate.

Файл конфигурации Hibernate включает в себя конфигурации для конкретной базы данных и информацию о диалекте. Он используется для инициализации SessionFactory. Вы можете получить доступ к учетным данным базы данных или информации о ресурсах JNDI из XML-файла конфигурации Hibernate.

С другой стороны, файл сопоставления Hibernate используется для определения сопоставления столбцов таблицы базы данных и полей компонента управления данными. Файл сопоставления является ядром каждого приложения Hibernate. Он содержит сопоставление имени класса POJO с именем таблицы и имен переменных класса POJO с именами столбцов таблицы.

13.Что такое POJO?

POJO — это аббревиатура от Plain Old Java Object. По сути, POJO — это Java-бины, разработанные со стандартными методами получения и установки для отдельных свойств. Преимущество использования POJO вместо классов Java заключается в том, что вы можете писать чистый, точный и эффективный код.

14. Назовите ключевые компоненты объекта конфигурации Hibernate.

Объект конфигурации Hibernate состоит из двух ключевых компонентов.

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

15.Что такое спящий диалект?

Hibernate Dialect указывает тип базы данных, которую вы хотите использовать. Это позволяет Hibernate знать эту информацию заранее, чтобы генерировать соответствующие операторы SQL, которые лучше всего подходят для вашего предпочтительного/указанного типа базы данных.

16. Определите «Кэширование в спящем режиме».

Кэширование Hibernate — это процесс запроса данных для повышения скорости и производительности приложения Hibernate. Цель состоит в том, чтобы свести к минимуму количество запросов к базе данных, что приведет к снижению пропускной способности.

EHCache — это функция кеша Hibernate по умолчанию.

17.Что такое кеш первого и второго уровня?

В Hibernate кеш первого уровня относится к кешу сеанса. Это обязательный кеш, через который должны проходить все запросы. Второй кеш — это необязательный кеш, который кэширует объекты между сеансами.

Вы можете настроить кэш второго уровня на основе предварительной коллекции и каждого класса. Как правило, прежде чем предпринимать какие-либо попытки найти объект в кэше второго уровня, необходимо обратиться к кешу первого уровня.

18. Объясните различные этапы объектно-сущностного компонента.

Экземпляр объектного/сущностного компонента обычно существует в любой из следующих трех фаз:

  • Переходный — на этом этапе объект никогда не сохраняется и не связывается с каким-либо сеансом. Вы можете преобразовать временные экземпляры в постоянные с помощью функций save(), persist() или saveOrUpdate(). Чтобы вернуть постоянный экземпляр обратно к переходному, вы можете использовать команду delete().
  • Постоянный — объект достигает постоянного состояния, когда он связывается с уникальным сеансом. Все экземпляры, возвращаемые функциями get() или load(), находятся в постоянном состоянии.
  • Отсоединенный — когда постоянный объект не связан ни с одним сеансом, он переходит в отсоединенное состояние. Вы можете преобразовать отдельный экземпляр в постоянный с помощью функций update(), saveOrUpdate(), lock() или replicate().

19. Какова цель грязной проверки в спящем режиме?

Функция автоматической грязной проверки Hibernate автоматически вызывает оператор обновления для объектов, измененных в транзакции, тем самым помогая разработчикам избежать трудоемких действий по записи.

Грязная проверка изменяет/обновляет только те поля, которые требуют действий, оставляя другие поля нетронутыми. В целом, это сокращает время записи базы данных.

20. Определите «Управление транзакциями».

Управление транзакциями — это функция среды Spring. По сути, это процесс управления набором команд/операторов. В Hibernate интерфейс Transaction выполняет управление транзакциями, сохраняя абстракцию от реализации транзакции (JTA, JDBC). Вы можете инициировать транзакцию, вызвав метод session.beginTransaction() .

Читайте также: Вопросы и ответы на собеседовании по Java

Заключение

В заключение, несмотря на то, что эти двадцать вопросов интервью Hibernate касаются поверхности рассматриваемой темы, мы надеемся, что они помогут вам растопить лед с Hibernate и копнуть глубже!

Мы желаем вам всего наилучшего в начале вашей карьеры в Java!

Получите работу своей мечты

Подать заявку на получение степени магистра в области разработки программного обеспечения