상위 50개 Hibernate 인터뷰 질문 및 답변 [초보자 및 경험자용]
게시 됨: 2020-12-15목차
소개
Hibernate는 Java의 경량 오픈 소스 기술입니다. 이 블로그에서 우리는 "50개의 Hibernate 인터뷰 질문에 대한 답변"을 통해 Hibernate에 대한 프로세스와 메커니즘을 이해할 것입니다.
최대 절전 모드는 무엇입니까?
Hibernate는 오픈 소스 객체 관계형 매핑, 경량 도구입니다. 웹 기반 애플리케이션을 위한 관계형 데이터베이스에 객체 지향 도메인 모델을 매핑하는 프레임워크를 제공합니다.
다음은 Hibernate를 적용하기 전에 애플리케이션 요구 사항에 대해 물어봐야 할 몇 가지 질문입니다.
- 새로운 프로젝트 개발, 애플리케이션 디자인 또는 데이터 모델에 사용할 수 있는 데이터 모델은 무엇입니까?
- 캐시 성능 수준은 무엇입니까?
- 단순하거나 복잡한 글쓰기를 어떻게 정의할 수 있습니까?
- 확장성의 용도는 무엇이며 어떤 시나리오에서 사용할 수 있습니까?
- 어떤 시나리오에서 자동 데이터베이스 버전 관리가 중요합니까?
- JAVA에 관계형 지속성이 필요합니까?
- 쿼리 언어 지원의 용도는 무엇이며 어떤 시나리오에서 사용할 수 있습니까?
- 투명 지속성 프로세스는 무엇이며 프로젝트에 미치는 영향은 무엇입니까?
ORM 도구
데이터 생성, 데이터 조작 및 데이터 액세스를 해석합니다. 객체를 데이터베이스에 저장된 데이터에 매핑하는 프로그래밍 접근 방식입니다.

하이버네이트 프레임워크란?
Hibernate는 객체 관계형 Java 기반 ORM 도구 매핑 솔루션입니다. 응용 프로그램 도메인 모델 개체를 관계형 데이터베이스 테이블에 매핑하는 프로그래밍 절차인 개체 관계형 매핑입니다. 느슨한 결합의 장점을 가진 ORM 도구로 탁월한 선택을 제공하는 Java Persistence API 구현 소스를 구현합니다.
하이버네이트 프레임워크의 이점
- 빠른 성능을 갖춘 경량: Hibernate 프레임워크의 성능은 Hibernate 프레임워크에서 내부적으로 작동하는 캐시의 도움으로 민첩합니다. Hibernate 프레임워크의 캐시는 1단계 캐시와 2단계 캐시입니다.
- 데이터베이스 자율 쿼리: HQL(Hibernate Query Language)은 SQL의 객체 지향 변형입니다. 데이터베이스별 쿼리를 작성하지 않고 독립적인 데이터베이스 쿼리를 생성합니다.
- 자동 테이블 생성: Hibernate 프레임워크는 데이터베이스의 테이블을 자동으로 생성하는 기능을 제공합니다. 데이터베이스에 수동으로 테이블을 생성하지 않고.
- 복합 조인 단순화: Hibernate 프레임워크에서 집계된 테이블에서 데이터를 검색하는 것은 쉽습니다.
- 쿼리 통계 및 데이터베이스 상태 수용: Hibernate는 쿼리 캐시를 유지하고 통계에 빠른 결과를 제공합니다.
최대 절전 모드 아키텍처
Hibernate 아키텍처는 영속 객체, 세션 팩토리, 트랜잭션 팩토리, 연결 팩토리, 세션, 트랜잭션과 같은 많은 객체들을 통합한다.
최대 절전 모드 아키텍처는 4개의 계층으로 분류됩니다.
- 자바 애플리케이션 계층
- 최대 절전 모드 프레임워크 계층
- 백핸드 API 계층
- 데이터베이스 계층
왜 Hibernate 프로세스를 선택해야 합니까?
프로세스 적응을 시작할 때 선택할 수 있는 아래 기술과 프로세스는 다음과 같습니다.
- Hibernate를 통해 개발자 는 실시간 데이터에서 수정할 수 있는 애플리케이션의 버전 유형 필드를 결정할 수 있습니다. 이 기능은 사용자에게 데이터를 저장하고 동시에 수정할 수 있도록 합니다.
- Hibernate는 JPA 주석에 대한 지원을 구현합니다. 예: @Entity, @Table, @Col 등.
- Hibernate에서 연결 풀링은 외부 도구에 의해 캐시에 생성 및 저장할 때 데이터베이스 연결의 기술입니다. 이러한 연결은 동일한 데이터베이스에 연결하기 위해 재사용해야 하는 경우 향후 캐시 자체에서 재사용할 수 있습니다. 우리가 만든 응용 프로그램
- Hibernate는 모든 환경에서 최고의 확장성을 확장합니다. 소규모 앱부터 수백만 명이 사용하는 앱에 이르기까지 모든 규모의 프로젝트에 적용할 수 있습니다.
- Hibernate에서 데이터베이스 버전 관리는 변경 사항이 다른 사용자에 의해 부주의하게 롤백되는 것을 방지하는 것을 지원하는 중요한 도구입니다. 애플리케이션 내에서 버전 유형을 기록할 수 있습니다. 데이터가 업데이트되거나 저장되면 버전 유형 및 타임스탬프를 추적하기 위해 기록할 수도 있습니다.
- Hibernate는 투명한 지속성을 구현하고 개발자는 RDBMS와 상호 작용하는 동안 데이터베이스 테이블 튜플을 애플리케이션 객체에 매핑하기 위해 명시적으로 코드를 작성할 필요가 없습니다.
- Hibernate에서 트랜잭션 관리는 일련의 명령문 또는 명령을 수행하는 방법입니다. Hibernate에서 트랜잭션 관리는 트랜잭션 인터페이스에 의해 수행됩니다.
JDBC보다 Hibernate를 고려해야 하는 5가지 이유
- 객체 관계형 복잡한 불일치 문제를 해결합니다.
관계형 데이터베이스를 사용하여 객체 지향 프로그래밍 언어로 빠른 솔루션을 제공합니다.
예: 데이터 유형의 불일치, 구조적 및 무결성 차이, 조작 및 트랜잭션 예외는 모두 개체 관계형 복합 불일치를 유발할 수 있습니다.
2. 자동 개체 매핑:
JDBC와 Hibernate는 그것이 자동 객체 매핑을 지원한다는 사실에 있습니다.” 투명 지속성 “, 이 방법은 상호 작용을 통해 애플리케이션 객체에 데이터베이스 테이블을 초안하기 위해 Hibernate를 제공합니다.
- 최대 절전 모드 쿼리 언어(HQL)
Hibernate는 SQL(Structured Query Language)을 유지 관리합니다. JDBC는 SQL만 지원하며, HQL(Hibernate Query Language)은 객체 지향 쿼리 언어라는 점에서 SQL과 관련이 있다. 연결하기 위해 HQL은 데이터베이스에서 작업을 시작할 수 있는 SQL 쿼리에 대한 쿼리를 해석합니다.
- 데이터베이스 독립성
Hibernate는 XML 파일을 통해 데이터 테이블과 애플리케이션을 연결하는 매핑을 제공합니다. 필요한 경우 데이터를 새 데이터베이스로 전송하는 더 나은 방법을 제공합니다. 데이터베이스에 접근하는 방식은 정보를 재사용할 수 있는 경우에 필수입니다. 캐싱은 데이터베이스 성능에 필수적인 구성 요소로 시간을 단축하고 실시간으로 애플리케이션을 지원합니다.
- 최대 절전 모드의 연결 풀링:
최대 절전 모드는 보다 안정적인 성능을 얻을 수 있습니다. "연결 풀링"을 제공합니다. 이것은 캐시에서 데이터베이스 연결을 수집하는 프로세스입니다. 앱이 동일한 데이터베이스에 여러 번 연결을 시도하는 경우 이러한 연결을 캐시 자체에서 재사용할 수 있습니다.
최대 절전 모드 인터뷰 질문 및 답변
질문:1 실행된 SQL 문을 작성하고 로그 파일에 바인드 매개변수를 사용하도록 Hibernate를 어떻게 구성합니까?
답변: 다음 단계는 다음과 같습니다.
실행된 SQL 문과 바인드 매개변수를 기록하기 위해 두 개의 다른 로그 섹션과 로그 수준을 만듭니다.
- 범주 org.hibernate.SQL .
- 로그 레벨이 TRACE인 org.hibernate.type.descriptor.sql 카테고리.
질문:2 Hibernate 프레임워크에서 가장 좋아하는 기능을 설명하십시오.
답변: ORM 도구, Hibernate는 강력한 쿼리 언어(HQL)를 제공합니다.
질문:3 Entity Beans와 Hibernate를 어떻게 구별할 수 있습니까?
답변: 엔티티 빈 은 컨테이너, 클래스, 디스크립터입니다. Hibernate 는 객체 트리를 클래스에 즉시 지속시키는 도구입니다.
질문:4 Session 객체의 프로세스를 설명하고 이를 1단계 캐시와 2단계 캐시에서 어떻게 사용할 수 있습니까?
답변: 첫 번째 수준 캐싱 : " 세션 " 개체 를 사용 하여 각 세션 기반으로 시작합니다 .
두 번째 수준 캐싱: 여러 세션 을 넘어 공유할 수 있습니다 .
질문:5 상속은 Hibernate에서 어떻게 작동합니까? 이를 구현하기 위해 사용할 수 있는 다양한 전략은 무엇입니까?
답변: 세 가지 유형의 상속:
- 계층별 테이블
- 콘크리트 클래스 당 테이블
- 서브클래스당 테이블
질문:6 Hibernate에서 Locking은 어떻게 작동합니까? 사용 가능한 다양한 잠금 메커니즘은 무엇입니까?
답변: 잠금 메커니즘은 낙관적이며 비관적 질문:7 Hibernate에서 트랜잭션 관리는 어떻게 작동합니까?
답변: (JTA, JDBC)의 도움으로 작동합니다.
질문:8 Hibernate에서 지연 로딩이란 무엇입니까?
답변: 클래스 프록시를 구현하여 엔터티 및 해당 연결에 대한 메커니즘입니다.
질문:9 Hibernate에서 사용할 수 있는 다양한 가져오기 전략은 무엇입니까?
답변: 조인 가져오기 및 가져오기 선택
질문:10 Hibernate에서 사용할 수 있는 다양한 가져오기 전략은 무엇입니까?
답변: Join-Fetching 및 Select Fetchings는 Hibernate에서 사용 가능한 가져오기입니다.
질문:11 Hibernate에서 get() 메소드와 load() 메소드의 차이점은 무엇입니까?
답변 : 할당된 식별자에 대한 데이터를 가져오는 데 사용되는 가져오기() 및 로드()입니다. Get() 메서드는 null을 반환하고 load() 메서드는 예외 유형을 찾을 수 없다는 오류를 throw합니다.

질문:12 엔터티 클래스를 최종 클래스로 만들면 안 되는 이유는 무엇입니까?
답변: 엔터티 바인딩 에 사용됩니다 .
질문:13 분리된 개체의 장점과 단점을 설명하십시오.
답변: 과거의 Hibernate 세션과 연결되었습니다. 데이터베이스에 설명이 있습니다.
질문:14 Hibernate Query Language(HQL)란 무엇입니까?
답변: OOPS 개념을 기반으로 합니다.
질문:15 Hibernate에서 SessionFactory 인터페이스의 역할을 설명하십시오.
답변: 스레드로부터 안전한 객체의 프로세스이며 애플리케이션 스레드 프로세스에서 사용할 수 있습니다.
질문:16 JDBC에 비해 Hibernate의 이점은 무엇입니까?
답변: 가장 빠른 성능과 확장성을 제공합니다.
질문:17 Hibernate에 의해 유지되는 몇 가지 데이터베이스를 설명하십시오.
답변: JDBC를 사용하는 관계형 데이터베이스.
질문:18 session.save()와 session.persist() 메소드를 어떻게 구별합니까?
답변: Session.save()는 객체를 데이터베이스에 저장하는 데 사용되며 session.persist()는 일시적이고 지속적인 객체에 사용됩니다.
질문:19 업데이트 및 병합 방법에 대해 설명해 주십시오.
답변: 분리된 상태의 개체를 변형하는 데 사용할 수 있습니다.
질문:20 일대일 및 다대일 컬렉션 매핑을 수행할 수 있습니까?
답변: 다른 테이블의 많은 행에 매핑 된 테이블에서 사용할 수 있습니다 .
질문:21 Hibernate에서 트랜잭션을 수행하는 방법은 무엇입니까?
답변: @transctional 클래스 선언의 도움으로 트랜잭션을 수행할 수 있습니다.
질문:22 Hibernate에서 객체/관계형 매핑은 어디에 표시됩니까?
답변: Hibernate ORM은 객체/관계형 매핑입니다.
질문:23 Light Object에 대해 어떻게 생각하십니까?
답변: 세션, 쿼리, 기준, 트랜잭션은 Light Object의 개념입니다.
질문:24 Hibernate에서 @Transient는 무엇입니까? 이것의 장점은 무엇입니까?
답변: @ Transient 지속성 패키지인 javax에 적용되었습니다.
질문:25 Struts Spring Hibernate를 결합하는 방법은 무엇입니까?
답변: ContextLoaderPlugIn의 도움으로 결합할 수 있습니다.
질문: 26 Hibernate Log4j 로깅에 대해 설명하십시오.
답변: By log4j.xml 파일과 log4j.properties 파일로 구성되어 있습니다.
질문: 27 Hibernate에서 동시 업데이트를 어떻게 제한할 수 있습니까?
답변: 비관적 잠금 프로세스의 도움으로 동시 업데이트를 제한할 수 있습니다.
질문: 28 Hibernate 영속 클래스를 결정하는 가장 좋은 방법은 무엇입니까?
답변: 매핑 영구 클래스 및 해당 메커니즘과 함께 사용할 수 있는 많은 모범 사례와 모범 사례가 있습니다.
질문: 29 영구 개체 수정의 개념은 무엇입니까?
답변: 영구 개체 는 최대 절전 모드 로 추적되며 커밋 요청이 발생할 때 데이터베이스에 저장됩니다.
질문: 30 Hibernate에서 일대다 양방향 관계란 무엇입니까?
답변: mappingBy 속성의 이점으로 많은 보기의 연관 속성 핸들의 참조입니다. Hibernate는 필요한 모든 지식을 가지고 있습니다. 이러한 프로세스를 통해 양방향 다대일 연관을 정의해야 합니다.
읽기: 풀 스택 개발자가 되기 위한 기술
질문: 31 메시지 리소스 번들 작업에서 값 교체란 무엇입니까?
답변: Hibernate Validator의 ResourceBundleMessageInterpolator는 두 개의 ResourceBundleLocator 인스턴스를 생성합니다. 하나는 UserDefined 검증 표준 검증 메시지인 defaultResourceBundleLocator 입니다.
질문: 32 SQL 문 실행 순서의 과정을 설명하십시오.
답변: 외래 키 제약 조건으로 인해 특정 순서의 두 번째 수준 캐시입니다. 삽입, 업데이트, 배열 요소 삭제, 배열 요소 삽입, 삭제가 표시된 방향으로
질문: 33 EHCache를 사용하여 Hibernate에서 2차 레벨 캐시를 어떻게 설정할 수 있습니까?
답변: Terracotta Ehcache 는 Hibernate 2단계 캐시 로 작동하는 최신 캐시입니다 . 독립 실행형 2단계 캐시 로 사용할 수 있습니다 .
질문: 34 Entity Beans와 Hibernate 사이의 주요 차이점은 무엇입니까?
답변: 엔터티 빈 은 디스크립터, 컨테이너, 클래스에 의해 계속 수행됩니다. 최대 절전 모드 는 데이터베이스의 클래스 계층 구조에 대해 개체 트리를 즉시 견디는 메커니즘일 뿐입니다.
질문: 35 Hibernate를 사용하여 처리된 조인 단계를 설명합니까?
답변: SQL Join의 도움으로 처리할 수 있습니다.
질문: 36 Hibernate 프록시의 프로세스를 설명합니까?
답변: Hibernate 프록시 이것은 우리가 Session을 호출할 때 Hibernate 를 참조합니다. 짐().
질문: 37 SQL을 사용하는 것보다 Hibernate를 사용하는 주요 이점은 무엇입니까?
답변: ORM을 실행하고 Hibernate 를 사용하면 SQL을 사용하면 Hibernate가 대규모 쿼리를 작성하는 것을 피할 수 있습니다.
질문: 38 Hibernate에서 사용할 수 있는 디자인 패턴을 설명합니까?
답변 : 프록시 패턴, 도메인 모델, 객체 모델이 디자인 패턴입니다.
또한 읽기: 전체 스택 개발 경력
질문: 39 Hibernate의 아키텍처를 설명하십시오.
답변: Hibernate는 기본 API를 이해할 필요 없이 사용자가 관리할 수 있도록 하는 계층화된 아키텍처를 가지고 있습니다.
질문: 40 Hibernate에서 지원되는 데이터 유형을 나열합니까?
답: IntegerType,FloatType,DoubleType,CharacterType,ShortType.
질문: 41 (JDO, CMP)란 무엇입니까?
답변: Java 지속성 기술입니다.
질문: 42 Spring과 Hibernate의 주요 차이점은 무엇입니까?
답변: Spring과 최대 절전 모드는 별개의 두 프레임워크입니다. Spring 은 애플리케이션의 흐름을 증폭시킨다. 최대 절전 모드 는 애플리케이션과 데이터베이스 간의 상호 작용에 관한 것입니다.
질문: 43 Hibernate에서 ORM 솔루션을 언제 찾을 수 있습니까?
답변: Hibernate는 Java용 ORM(Object/Relational Mapping) 솔루션의 개념입니다. 개체/관계형 매핑이라는 용어는 개체 모델 설명 중 데이터를 관계형 데이터 모델 설명으로 매핑하는 절차를 의미합니다.
질문:44 Hibernate에서 트랜잭션을 완료하기 위한 단계별 프로세스를 언급하십시오.
답변: ACID-> 속성(Atomicity, Consistency, Isolation 및 Durability)의 도움으로.
질문:45 Hibernate에서 매핑은 어디에 있습니까?
답변: Hibernate 매핑은 Hibernate의 기능입니다. 그들은 모델의 속성 동안 두 데이터베이스 테이블 간의 연결을 구성합니다. 이를 통해 모델 및 표준 쿼리의 연결을 신속하게 추진할 수 있습니다.
질문:46 Hibernate 매핑에서 가능한 다양한 유형의 관계를 만질 수 있습니까?
답변: 일대일, 다대일, 일대다, 다대다.
질문:47 Hibernate에서 객체 매핑을 어디에서 정의할 수 있습니까?
답변: 데이터를 저장하기 위해 Java 개체 를 SQL 쿼리로 변환 합니다.
질문:48 Hibernate의 수많은 컬렉션 유형을 나열할 수 있습니까?
답변: HashMap, HashSet, TreeSet 및 Arraylist는 Hibernate의 컬렉션 유형입니다.
질문:49 Hibernate에서 데이터베이스에서 데이터를 가져오는 프로세스는 무엇입니까?
답변: 세션과 함께 beginTransaction() API 함수를 사용하는 Hibernate 기준의 도움으로 데이터를 가져올 수 있습니다.

질문:50 JPA 주석 @NamedQuery 및 @NamedNativeQuery를 사용하여 Hibernate 매핑 파일에 대해 설명하십시오.
답변: @NamedQuery 및 @NamedNativeQuery는 HQL 쿼리 유형으로, HQL을 수많은 SQL 언어로 변환하는 복잡성을 처리합니다.
세계 최고의 대학 에서 소프트웨어 엔지니어링 과정 에 등록하십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
결론
이 기사가 초보자와 전문가를 위한 상위 50개의 Hibernate "인터뷰" 질문을 이해하는 데 도움이 되었기를 바랍니다.
전체 스택 소프트웨어 개발에 대해 자세히 알아보려면 upGrad & IIIT-B의 전체 스택 소프트웨어 개발 이그 제 큐 티브 PG 프로그램을 확인하십시오. 이 프로그램은 작업 전문가를 위해 설계되었으며 500 시간 이상의 엄격한 교육, 9 개 이상의 프로젝트, 및 과제, IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

