20가지 가장 일반적인 Hibernate 인터뷰 질문과 답변 [신입생 및 경험자용]
게시 됨: 2020-12-31오랫동안 Java는 가장 인기 있는 프로그래밍 언어 목록에서 1위를 차지했습니다. 당연히 전 세계 개발자들이 선호하는 최우선 프로그래밍 언어인 Java에는 방대한 도구, 라이브러리 및 프레임워크 모음이 수반됩니다. 이 포스트에서 우리는 유명한 자바 프레임워크인 Hibernate에 대해 이야기할 것입니다.
Java로 작업했거나 Java로 작업하는 사람은 누구나 Hibernate와 그 기능을 잘 알고 있습니다. 그러나 Hibernate라는 이름을 이제 막 접한 사람들을 위해 분석해 보겠습니다.
목차
최대 절전 모드는 무엇입니까?
Hibernate는 Java 전용으로 설계된 ORM(객체 관계형 매핑) 도구입니다. 즉, 객체 지향 모델을 관계형 데이터베이스에 매핑하는 데 도움이 되는 프레임워크를 제공합니다. Hibernate는 주로 Java 클래스에서 데이터베이스 테이블로의 매핑 및 Java 데이터 유형에서 SQL 데이터 유형으로의 매핑에 중점을 둡니다.
Hibernate는 또한 데이터 쿼리 및 검색 서비스를 확장합니다. Java로 작성되었으며 JVM 기반입니다. Hibernate는 ORM(Object Relational Mapping)을 위한 환상적인 선택이 되도록 하는 Java Persistence API의 참조 구현을 제공합니다. CRUD 작업에 Hibernate 지속성 API를 사용할 수 있습니다.
원래 Hibernate는 EJB2(Enterprise Java Beans 버전 2)의 더 간단하고 더 나은 대안 역할을 하도록 설계되었습니다. 오늘날 Hibernate는 Java 애플리케이션을 위해 가장 널리 사용되는 ORM 도구 중 하나임을 자랑스럽게 생각합니다.
데이터베이스 작업을 위한 Java 기반 엔터프라이즈 응용 프로그램을 개발하는 데 광범위하게 사용됩니다. 또한 Hibernate Persistence API는 CRUD 작업에 탁월합니다.

이제 Hibernate에 대한 약간의 배경 지식을 얻었으므로 이 X Hibernate 인터뷰 질문을 통해 이 ORM 도구에 대해 조금 더 알아보자!
세계 최고의 대학 에서 소프트웨어 개발 과정 에 등록하십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
최대 절전 모드 인터뷰 질문 및 답변
1.ORM이란?
ORM(Object Relational Mapping)은 데이터베이스에 저장된 데이터와 객체를 매핑하는 기술을 말합니다. ORM의 목표는 데이터 생성, 데이터 액세스 및 데이터 조작을 단순화하는 것입니다.
2.JPA란?
JPA(Java Persistence API)는 ORM 도구에 표준과 기능을 할당하는 사양입니다. javax.persistence 패키지 에서 JPA 클래스 및 인터페이스에 액세스할 수 있습니다 . 모든 JPA 사양은 javax.persistence 패키지의 주석을 사용하여 정의됩니다. JPA 주석 사용의 장점은 구현 독립적인 코드를 작성할 수 있다는 것입니다.
3. 최대 절전 모드 매핑에 사용되는 중요한 JPA 주석은 무엇입니까?
Hibernate는 org.hibernate.annotations 패키지를 통해 액세스할 수 있는 다른 많은 주석과 함께 JPA 주석을 지원합니다. 다음은 가장 중요한 7가지 JPA 주석입니다.
javax.persistence.Entity – 모델 클래스와 조합하여 엔티티 Bean으로 선언하는 데 사용됩니다.
javax.persistence.Table – 엔티티 빈과 함께 데이터베이스에서 해당 테이블 이름을 정의하는 데 사용됩니다.
javax.persistence.Access – 액세스 유형, 필드 또는 속성을 지정하는 데 사용됩니다. 이 주석의 기본값은 필드입니다.
javax.persistence.Id – 엔티티 Bean의 기본 키를 정의합니다.
javax.persistence.EmbeddedId – 엔티티 Bean에서 복합 기본 키를 지정하는 데 사용됩니다.
javax.persistence.Column – 데이터베이스 테이블의 열 이름을 지정합니다.
javax.persistence.GeneratedValue – 기본 키 생성에 필요한 전략을 정의합니다.
4.HQL 정의
HQL은 Hibernate Query Language의 약자입니다. 데이터베이스와 독립적인 객체 지향 쿼리 언어입니다.
5. 최대 절전 모드에서 매핑을 어떻게 수행합니까?
Hibernate의 연관 매핑 기능은 관계형 데이터베이스 모델과 동일한 네 가지 표준 연관을 지원하여 매핑을 용이하게 합니다.
- 일대일 연결
- 일대다 연결
- 다대일 연결
- 다대다 연결
이러한 각 연결은 단방향 또는 양방향 연결로 매핑될 수 있습니다.
6. Hibernate의 주요 인터페이스/구성요소의 이름을 지정합니다.
Hibernate에는 Configuration, SessionFactory, Session, Query, Criteria 및 Transaction의 6가지 핵심 인터페이스가 있습니다.

7. Hibernate에서 SQL 쿼리를 생성할 수 있습니까?
예, Hibernate에서 SQL 쿼리를 생성할 수 있습니다. SQL 쿼리를 생성하려면 다음 구문을 사용해야 합니다.
Session.createSQLQuery
8.하이버네이트 설정 파일이란?
Hibernate 구성 파일은 데이터베이스별 구성을 저장합니다. SessionFactory 인터페이스를 초기화하는 데 사용됩니다. 이 파일은 또한 Hibernate가 데이터베이스 유형 및 매핑 파일/클래스 세부사항을 알 수 있도록 하는 Dialect 정보와 같은 다른 관련 정보를 포함합니다.
9.영구 클래스란?
Hibernate에서 객체와 인스턴스가 데이터베이스 클래스에 저장되는 클래스를 영속 클래스라고 합니다.
10.세션 정의
Session 인터페이스는 Hibernate와 Java 애플리케이션 계층 사이에 있습니다. 주로 데이터베이스 작업을 수행하는 데 사용됩니다. Session은 Hibernate 앱과 데이터베이스 간의 연결을 설정하고 유지하는 데 도움이 됩니다. 영구 객체에 대한 생성, 읽기, 업데이트 및 삭제 작업을 수행하는 다양한 방법을 제공합니다.
또한 Session은 Query, Criteria 및 Transaction의 팩토리처럼 작동합니다. 즉, 이러한 인스턴스를 반환하기 위해 팩토리 메소드를 확장합니다. Session 개체를 사용하여 기준을 만들고 HQL 쿼리 및 SQL 네이티브 쿼리를 실행할 수 있습니다.
11. SessionFactory를 정의합니다.
Hibernate에서 SessionFactory는 Session 객체에 접근하기 위해 사용되는 팩토리 클래스이다. Hibernate 구성 매개변수를 읽고 데이터베이스에 연결하여 Session 개체를 가져옵니다. SessionFactory는 본질적으로 Session의 팩토리이며 Session의 인스턴스를 제공합니다.
SessionFactory가 생성되면 내부 상태가 고정되어 변경할 수 없습니다. SessionFactory의 내부 상태에는 개체/관계형 매핑의 전체 메타데이터가 포함됩니다.
12.Hibernate 설정 파일과 Hibernate 매핑 파일을 구별한다.
Hibernate 구성 파일에는 데이터베이스별 구성 및 Dialect 정보가 포함됩니다. SessionFactory를 초기화하는 데 사용됩니다. Hibernate 구성 XML 파일에서 데이터베이스 자격 증명 또는 JNDI 리소스 정보에 액세스할 수 있습니다.
반면에 Hibernate 매핑 파일은 데이터베이스 테이블 컬럼 매핑과 엔티티 빈 필드를 정의하는데 사용된다. 매핑 파일은 모든 Hibernate 앱의 핵심입니다. 여기에는 POJO 클래스 이름에서 테이블 이름으로의 매핑 및 POJO 클래스 변수 이름에서 테이블 열 이름으로의 매핑이 포함됩니다.
13.POJO가 무엇인가요?
POJO는 Plain Old Java Object의 약자입니다. 기본적으로 POJO는 개별 속성에 대한 표준 getter 및 setter 메서드로 설계된 Java Bean입니다. Java 클래스 대신 POJO를 사용하는 이점은 깨끗하고 정확하며 효율적인 코드를 작성할 수 있다는 것입니다.
14. Hibernate 구성 객체의 주요 구성요소의 이름을 지정하십시오.
Hibernate 구성 객체에는 두 가지 주요 구성 요소가 있습니다.
- 하나 이상의 구성 파일에 의해 관리되는 데이터베이스 연결입니다.
- Java 클래스와 데이터베이스 테이블 간의 연결을 설정하는 데 사용되는 클래스 매핑 설정입니다.
15.하이버네이트 방언이란?
Hibernate Dialect는 사용하려는 데이터베이스 유형을 지정합니다. 그것은 Hibernate가 당신이 선호하는/지정된 데이터베이스 유형에 가장 잘 맞는 적절한 SQL 문을 생성하기 위해 이 정보를 미리 알 수 있도록 합니다.
16. "하이버네이트 캐싱"을 정의합니다.
Hibernate 캐싱은 Hibernate 애플리케이션의 속도와 성능을 향상시키기 위해 데이터를 쿼리하는 프로세스입니다. 목표는 데이터베이스 쿼리 수를 최소화하여 처리 시간을 줄이는 것입니다.
EHCache는 Hibernate의 기본 캐시 기능입니다.
17.1차 캐시와 2차 캐시가 무엇인가요?
Hibernate에서 첫 번째 수준 캐시는 세션 캐시를 나타냅니다. 모든 요청이 통과해야 하는 필수 캐시입니다. 두 번째 캐시는 세션 간에 개체를 캐시하는 선택적 캐시입니다.
사전 수집 및 클래스별로 기반으로 두 번째 수준 캐시를 구성할 수 있습니다. 일반적으로 두 번째 수준 캐시에서 개체를 찾으려고 시도하기 전에 첫 번째 수준 캐시를 참조해야 합니다.
18.객체/엔티티 빈의 여러 단계를 설명합니다.
객체/엔티티 빈 인스턴스는 일반적으로 다음 세 단계 중 하나에 존재합니다.
- 일시적인 – 이 단계에서 개체는 지속되거나 세션과 연결되지 않습니다. save(), persist() 또는 saveOrUpdate() 함수를 사용하여 임시 인스턴스를 영구 인스턴스로 변환할 수 있습니다. 영구 인스턴스를 임시로 되돌리려면 delete() 명령을 사용할 수 있습니다.
- 영구 – 개체는 고유한 세션과 연결될 때 영구 상태에 도달합니다. get() 또는 load() 함수에서 반환된 모든 인스턴스는 영구 상태입니다.
- 분리됨 – 영구 개체가 세션과 연결되지 않으면 분리됨 상태에 도달합니다. update(), saveOrUpdate(), lock() 또는 replicate() 함수를 통해 분리된 인스턴스를 영구 인스턴스로 변환할 수 있습니다.
19. Hibernate에서 Dirty Checking의 목적은 무엇입니까?
Hibernate의 자동 더티 검사 기능은 트랜잭션에서 수정된 객체에 대한 업데이트 문을 자동으로 호출하므로 개발자가 시간 소모적인 쓰기 작업을 피할 수 있습니다.

더티 검사는 작업이 필요한 필드만 수정/업데이트하고 다른 필드는 그대로 유지합니다. 전반적으로 데이터베이스 쓰기 시간을 줄입니다.
20. "트랜잭션 관리"를 정의합니다.
트랜잭션 관리는 Spring 프레임워크의 기능입니다. 기본적으로 일련의 명령/문장을 관리하는 프로세스입니다. Hibernate에서 Transaction 인터페이스는 트랜잭션 구현(JTA, JDBC)으로부터 추상화를 유지함으로써 트랜잭션 관리를 수행한다. session.beginTransaction() 메서드 를 호출하여 트랜잭션을 시작할 수 있습니다 .
또한 읽기: Java 인터뷰 질문 및 답변
결론
마무리로, 이 20개의 Hibernate 인터뷰 질문이 문제의 주제의 표면을 긁지만 이것이 Hibernate로 얼음을 깨고 더 깊이 파고드는 데 도움이 되기를 바랍니다!
Java에서 경력을 시작하는 데 최선을 다하시기 바랍니다!
