50 лучших вопросов на собеседовании в Hibernate (2024 г.)
Вот вопросы и ответы на собеседовании в Hibernate для новичков, а также для опытных кандидатов, желающих получить работу своей мечты.
1. Что такое спящий режим?
Hibernate — это популярная платформа Java, которая позволяет эффективно реляционное сопоставление объектов с использованием файлов конфигурации в формате XML. После сопоставления объектов Java с таблицами базы данных база данных используется и обрабатывается с использованием объектов Java без написания сложных запросов к базе данных.
Бесплатная загрузка в формате PDF: Вопросы и ответы для интервью в Hibernate
2. Что такое ОРМ?
ORM (реляционное сопоставление объектов) — это фундаментальная концепция платформы Hibernate, которая сопоставляет таблицы базы данных с объектами Java, а затем предоставляет различные APIдля выполнения различных типов операций над таблицами данных.
3. Как свойства класса сопоставляются со столбцами таблицы базы данных в Hibernate?
Сопоставления между свойствами класса и столбцами таблицы указаны в XML файл, как в примере ниже:
4. Как используется интерфейс конфигурации в спящем режиме?
Интерфейс конфигурации спящего режима используется для настройки спящего режима. Это также используется для начальная загрузка впасть в спячку. Документы сопоставления спящего режима находятся с помощью этого интерфейса.
5. Как мы можем использовать новые пользовательские интерфейсы для расширения функциональности встроенных интерфейсов спящего режима?
Мы можем использовать интерфейсы расширения, чтобы добавить любую необходимую функциональность, которая не поддерживается встроенными интерфейсами.
6. Должны ли все файлы сопоставления спящего режима иметь расширение .hbm.xml для правильной работы?
Нет, наличие расширения .hbm.xml является соглашением, а не обязательным требованием для имен файлов сопоставления спящего режима. У нас может быть любое расширение для этих файлов сопоставления.
7. Как создать фабрику сеансов в спящем режиме?
Чтобы создать фабрику сеансов в спящем режиме, сначала создается объект конфигурации, который ссылается на путь к файлу конфигурации, а затем для этой конфигурации создается фабрика сеансов, как показано в примере ниже:
Configuration config = new Configuration(); config.addResource("myinstance/configuration.hbm.xml"); config.setProperties( System.getProperties() ); SessionFactory sessions = config.buildSessionFactory();
8. Что такое POJO и каково их значение?
POJO (простые старые объекты Java) — это Java-компоненты с соответствующими методами получения и установки для каждого свойства.
Использование POJO вместо простых классов Java приводит к созданию эффективного и хорошо построенного кода.
9. Что такое HQL?
HQL — это язык запросов, используемый в Hibernate, который является расширением SQL. HQL — очень эффективный, простой и гибкий язык запросов, позволяющий выполнять различные типы операций с реляционной базой данных без написания сложных запросов к базе данных.
10. Как мы можем вызывать хранимые процедуры в спящем режиме?
В спящем режиме мы можем выполнять хранимые процедуры, используя код, как показано ниже:
11. Что такое API критериев?
Criteria — это простой, но мощный API спящего режима, который используется для извлечения сущностей посредством композиции объектов критериев.
12. Каковы преимущества использования шаблона Hibernate?
Ниже приведены некоторые ключевые преимущества использования шаблона Hibernate:
а. Закрытие сессии автоматизировано.
б. Взаимодействие с спящим сеансом упрощено.
в. Обработка исключений автоматизирована.
13. Как мы можем увидеть сгенерированный в спящем режиме SQL на консоли?
Нам нужно добавить следующее в файл конфигурации спящего режима, чтобы включить просмотр SQL на консоли в целях отладки:
14. Какие два типа коллекций существуют в спящем режиме?
Ниже приведены два типа коллекций в спящем режиме:
- Сортированная коллекция
- Сбор заказов
15. В чем разница между методами session.save() и session.saveOrUpdate() в спящем режиме?
Метод Sessionsave() сохраняет запись, только если она уникальна по отношению к ее первичному ключу, и не сможет вставить ее, если первичный ключ уже существует в таблице.
метод saveOrUpdate() вставляет новую запись, если первичный ключ уникален, и обновляет существующую запись, если первичный ключ уже существует в таблице.
16. Какие преимущества спящего режима перед JDBC?
- Hibernate можно беспрепятственно использовать с любым типом базы данных, поскольку он не зависит от базы данных, в то время как в случае JDBC разработчик должен писать запросы, специфичные для базы данных.
- Используя спящий режим, разработчику не нужно быть экспертом в написании сложных запросов, поскольку HQL упрощает процесс написания запросов, тогда как в случае JDBC его работа заключается в написании и настройке запросов.
- В случае спящего режима нет необходимости создавать пулы соединений, поскольку спящий режим выполняет всю обработку соединений автоматически, тогда как в случае JDBC необходимо создавать пулы соединений.
17. Как получить статистику спящего режима?
Мы можем получить статистику гибернации, используя метод getStatistics() класса SessionFactory, как показано ниже:
SessionFactory.getStatistics()
18. Что такое временное состояние экземпляра в Hibernate?
Если экземпляр не связан ни с каким постоянным контекстом, а также никогда не был связан ни с каким постоянным контекстом, то говорят, что он находится в переходном состоянии.
19. Как мы можем сократить время записи базы данных в Hibernate?
Hibernate предоставляет функцию грязной проверки, которую можно использовать для сокращения времени записи в базу данных. Функция грязной проверки в спящем режиме обновляет только те поля, которые требуют изменения, а другие остаются неизменными.
20. Как используются интерфейсы обратного вызова в спящем режиме?
Интерфейсы обратного вызова спящего режима полезны для получения уведомлений о событиях от объектов. Например, когда объект загружается или удаляется, генерируется событие и отправляется уведомление с использованием интерфейсов обратного вызова.
21. Когда экземпляр переходит в отключенное состояние в спящий режим?
Если экземпляр ранее был связан с каким-либо постоянным контекстом (например, с таблицей) и больше не связан, он переводится в отсоединенное состояние.
22. Какие четыре уровня ORM находятся в спящем режиме?
Ниже приведены четыре уровня ORM в спящем режиме:
- Чистый реляционный
- Отображение световых объектов
- Отображение средних объектов
- Полное сопоставление объектов
23. Что такое управление транзакциями в спящем режиме? Как это работает?
Управление транзакциями — это процесс управления набором операторов или команд. В спящем режиме; управление транзакциями осуществляется с помощью интерфейса транзакций, как показано в коде ниже:
Session s = null;
Transaction tr = null;
try {
s = sessionFactory.openSession();
tr = s.beginTransaction();
doTheAction(s);
tr.commit();
} catch (RuntimeException exc) {
tr.rollback();
} finally {
s.close();
}
24. Какие два метода настройки спящего режима?
Мы можем использовать любой из следующих двух методов настройки спящего режима:
- Конфигурация на основе XML (с использованием файла hibernate.cfg.xml)
- Программная конфигурация (с использованием логики кода)
25. Какая служба кэширования в спящем режиме используется по умолчанию?
Hibernate поддерживает несколько служб кэширования, таких как EHCache, OSCache, SWARMCache и TreeCache, а служба кэширования Hibernate по умолчанию — EHCache.
26. Какие две ассоциации сопоставления используются в спящем режиме?
В спящем режиме; у нас есть следующие два типа сопоставления ассоциаций между сущностями:
- Ассоциация один на один
- Ассоциация «многие ко многим»
27. Как используется Hibernate QBC API?
API Hibernate Query By Criteria (QBC) используется для создания запросов путем манипулирования объектами критериев во время выполнения.
28. Сколькими способами можно извлечь объекты из базы данных в спящем режиме?
Hibernate предоставляет следующие четыре способа извлечения объектов из базы данных:
- Использование HQL
- Использование идентификатора
- Использование API критериев
- Использование стандартного SQL
29. Как создается первичный ключ с помощью спящего режима?
Первичный ключ базы данных указывается в файле конфигурации hbm.xml. Генератор также можно использовать для указания способа создания первичного ключа в базе данных.
В приведенном ниже примере deptId выступает в качестве первичного ключа:
30. Как мы можем повторно прикрепить отсоединенные объекты в Hibernate?
Объекты, которые были отсоединены и больше не связаны с какими-либо постоянными объектами, можно повторно подключить, вызвав метод session.merge() класса сеанса.
31. Какие существуют способы отключения кэша второго уровня в спящем режиме?
Кэш второго уровня Hibernate можно отключить любым из следующих способов:
- Установив для use_ Second_level_cache значение false.
- Используя CACHEMODE.IGNORE
- Использование поставщика кеша в качестве org.hibernate.cache.NoCacheProvider
32. Что такое метаданные ORM?
Все сопоставления между классами и таблицами, свойствами и столбцами, типами Java и типами SQL и т. д. определяются в метаданных ORM.
33. Какая фабрика транзакций по умолчанию в спящем режиме?
В спящем режиме 3.2 фабрикой транзакций по умолчанию является JDBCTransactionFactory.
34. Какова роль JMX в спящем режиме?
Java-приложения и компоненты управляются в спящем режиме с помощью стандартного API, называемого JMX API. JMX предоставляет инструменты для разработки эффективных и надежных распределенных веб-решений.
35. Как мы можем связать фабрику сеансов спящего режима с JNDI?
Фабрику сеансов Hibernate можно привязать к JNDI, внеся изменения в конфигурацию в файле hibernate.cfg.
36. Сколькими способами можно идентифицировать объекты в Hibernate?
Идентификацию объекта в спящем режиме можно выполнить тремя способами:
- Использование идентификации объекта: использование оператора ==.
- Использование равенства объектов: использование метода равенства().
- Использование идентификации базы данных: объекты реляционной базы данных можно идентифицировать, если они представляют одну и ту же строку.
37. Какие существуют стратегии выборки в спящем режиме?
В спящем режиме доступны следующие стратегии выборки:
- Присоединяйтесь к выборке
- Пакетная выборка
- Выберите Получение
- Дополнительный выбор
38. Как выполняется сопоставление объектов Java с таблицами базы данных?
Чтобы сопоставить объекты Java с таблицами базы данных, нам нужно, чтобы имена свойств Java-компонентов совпадали с именами столбцов таблицы базы данных. Затем сопоставление предоставляется в файле hbm.xml, как показано ниже:
39. Что такое производные свойства в спящем режиме?
Производные свойства — это свойства, которые не сопоставлены ни с одним столбцом таблицы базы данных. Такие свойства вычисляются во время выполнения путем оценки любых выражений.
40. Что подразумевается под именованным SQL-запросом в спящем режиме и как он используется?
Именованные SQL-запросы — это запросы, которые определены в файле сопоставления и вызываются по мере необходимости в любом месте.
Например, мы можем написать SQL-запрос в нашем файле сопоставления XML следующим образом:
Тогда этот запрос можно вызвать следующим образом:
List students = session.getNamedQuery("studentdetails")
.setString("TomBrady", name)
.setMaxResults(50)
.list();
41. В чем разница между методами load() и get() в спящем режиме?
Методы Load() приводят к исключению, если требуемые записи не найдены в базе данных, а метод get() возвращает значение null, если записи по идентификатору не найдены в базе данных.
Итак, в идеале нам следует использовать метод Load() только тогда, когда мы уверены в существовании записей по идентификатору.
42. Для чего используется свойство версии в спящем режиме?
Свойство Version используется в спящем режиме, чтобы узнать, находится ли объект в переходном или отсоединенном состоянии.
43. Что такое атрибутно-ориентированное программирование?
В программировании, ориентированном на атрибуты, разработчик может добавлять метаданные (атрибуты) в исходный код Java, чтобы повысить значимость кода. Для Java (спящий режим) атрибутно-ориентированное программирование обеспечивается механизмом XDoclet.
44. Какая польза от session.lock() в спящем режиме?
Метод session.lock() класса сеанса используется для повторного подключения объекта, который был отсоединен ранее. Этот метод повторного подключения не проверяет синхронизацию данных в базе данных при повторном подключении объекта и, следовательно, может привести к отсутствию синхронизации данных.
45. Поддерживает ли спящий режим полиморфизм?
Да, спящий режим полностью поддерживает полиморфизм. Запросы полиморфизма и ассоциации полиморфизма поддерживаются во всех стратегиях отображения спящего режима.
46. Каковы три модели наследования спящего режима?
Hibernate имеет следующие три модели наследования:
- Таблицы по конкретному классу
- Таблица на иерархию классов
- Таблица по подклассам
47. Как мы можем сделать классы неизменяемыми?
Если мы не хотим, чтобы приложение обновляло или удаляло объекты класса в спящем режиме, мы можем сделать класс неизменяемым, установив mutable=false.
48. Каков общий поток гибернации при использовании СУБД?
Общий поток спящего режима с использованием РСУБД выглядит следующим образом:
- Загрузите файл конфигурации и создайте объект класса конфигурации.
- Используя объект конфигурации, создайте объект sessionFactory.
- Из sessionFactory получите один сеанс.
- Создайте HQL-запрос.
- Выполните запрос HQL и получите результаты. Результаты будут в виде списка.
49. Что такое отображение световых объектов?
Сопоставление легких объектов — это один из уровней качества ORM, на котором все сущности представлены как классы и сопоставляются вручную.
50. В чем разница между управляемыми ассоциациями и спящими ассоциациями?
Управляемые ассоциации связаны с постоянством управления контейнерами и являются двунаправленными, тогда как ассоциации спящего режима являются однонаправленными.
Эти вопросы для собеседования также помогут вам в устной речи.
Хорошая коллекция вопросов…
Отличное объяснение,,,,
Не могли бы вы также добавить вопросы ниже?
Как мы можем вызывать хранимые процедуры в спящем режиме?
Что такое упорядоченная коллекция и отсортированная коллекция
что такое постоянное состояние
Как настроена грязная проверка
Настроить интерфейс обратного вызова
Как сделать объект отдельным
что произойдет, если я отсоединю переходный объект
объяснить каждый уровень ORM в Hibernate
Как включить/отключить кэш первого и второго уровня
Как мы можем связать фабрику сеансов спящего режима с JNDI?
В чем разница между методами load() и get() в спящем режиме?
разница между session.lock() и session.merge()
Как класс отображается как неизменяемый и почему
Как мы можем использовать новые пользовательские интерфейсы для улучшения функциональности встроенных интерфейсов спящего режима?
Привет, администратор. Будет полезно, если вы добавите этот вопрос или более важные вопросы, подобные mcq, для конкурсного экзамена.