Hibernate の面接での質問トップ 50 (2025)

ここでは、新人だけでなく経験豊富な候補者も夢の仕事に就くための Hibernate 面接の質問と回答を紹介します。


1. 休止状態とは何ですか?

Hibernate は、XML 形式の構成ファイルを使用して効率的なオブジェクト リレーショナル マッピングを可能にする Java の一般的なフレームワークです。 Java オブジェクトをデータベース テーブルにマッピングした後、複雑なデータベース クエリを作成せずに、Java オブジェクトを使用してデータベースが使用および処理されます。

無料 PDF ダウンロード: Hibernate インタビューの質問と回答


2.ORMとは何ですか?

ORM (オブジェクト リレーショナル マッピング) は、データベース テーブルを Java オブジェクトにマップし、さまざまな機能を提供する Hibernate フレームワークの基本概念です。 APIを使用して、データテーブルに対してさまざまな種類の操作を実行します。


3. Hibernate では、クラスのプロパティがデータベース テーブルの列にどのようにマップされますか?

クラスのプロパティとテーブルの列の間のマッピングは、 XML 以下の例のようにファイルを作成します。


4. 休止状態での構成インターフェイスの使用法は何ですか?

Hibernate フレームワークの設定インターフェイスは、Hibernate を設定するために使用されます。 それも慣れています ブートストラップ 冬眠する。 Hibernate のマッピング ドキュメントは、このインターフェイスを使用して検索されます。


5. 新しいカスタム インターフェイスを使用して、Hibernate の組み込みインターフェイスの機能を強化するにはどうすればよいですか?

拡張インターフェイスを使用して、組み込みインターフェイスではサポートされていない必要な機能を追加できます。

Hibernate の面接での質問
Hibernate の面接での質問

6. 適切に動作するには、hibernate のすべてのマッピング ファイルの拡張子が .hbm.xml である必要がありますか?

いいえ、.hbm.xml 拡張子を持つことは慣例であり、Hibernate マッピング ファイル名の要件ではありません。 これらのマッピング ファイルには任意の拡張子を付けることができます。


7. 休止状態でセッション ファクトリを作成するにはどうすればよいですか?

冬眠インタビューの質問.
冬眠する

休止状態でセッション ファクトリを作成するには、まず設定ファイルのパスを参照する設定オブジェクトが作成され、次にその設定に対して、次の例に示すようにセッション ファクトリが作成されます。

Configuration config = new Configuration();
config.addResource("myinstance/configuration.hbm.xml");
config.setProperties( System.getProperties() );
SessionFactory sessions = config.buildSessionFactory();

8. POJO とは何ですか?またその重要性は何ですか?

POJO (Plain Old Java Objects) は、すべてのプロパティに対して適切なゲッター メソッドとセッター メソッドを備えた Java Bean です。
単純な Java クラスの代わりに POJO を使用すると、効率的で適切に構築されたコードが得られます。


9.HQLとは何ですか?

HQL は Hibernate で使用されるクエリ言語であり、HQL を拡張したものです。 SQL。 HQL は、複雑なデータベース クエリを作成せずに、リレーショナル データベースでさまざまな種類の操作を実行できる、非常に効率的でシンプルかつ柔軟なクエリ言語です。


10. 休止状態でストアド プロシージャを呼び出すにはどうすればよいですか?

休止状態では、次のようなコードを使用してストアド プロシージャを実行できます。


11. 基準 API とは何ですか?

Criteria は、基準オブジェクトの構成を通じてエンティティを取得するために使用される Hibernate のシンプルかつ強力な API です。


12. Hibernate テンプレートを使用する利点は何ですか?

Hibernate テンプレートを使用する主な利点を次に示します。
a. セッションの終了は自動化されます。
b. 休止状態セッションとの対話が簡素化されています。
c. 例外処理は自動化されています。


13. Hibernate で生成された SQL をコンソールで確認するにはどうすればよいですか?

デバッグ目的でコンソール上で SQL を表示できるようにするには、休止状態設定ファイルに以下を追加する必要があります。


14. 休止状態における XNUMX 種類のコレクションとは何ですか?

Hibernate の XNUMX 種類のコレクションは次のとおりです。

  1. ソートされたコレクション
  2. 注文の収集


15. Hibernate における session.save() メソッドと session.saveOrUpdate() メソッドの違いは何ですか?

Sessionsave() メソッド 主キーに関して一意である場合にのみレコードを保存し、主キーがテーブルにすでに存在する場合は挿入に失敗します。
saveOrUpdate() メソッド 主キーが一意の場合は新しいレコードを挿入し、主キーがすでにテーブルに存在する場合は既存のレコードを更新します。


16. 休止状態の利点は何ですか JDBC?

  • Hibernate はデータベースに依存しないため、どのタイプのデータベースでもシームレスに使用できますが、JDBC の場合、開発者はデータベース固有のクエリを作成する必要があります。
  • Hibernate を使用すると、HQL がクエリ作成プロセスを簡素化するため、開発者は複雑なクエリを作成する専門家である必要がなくなりますが、JDBC の場合、クエリを作成して調整するのは開発者の仕事です。
  • Hibernate の場合、すべての接続処理が自動的に行われるため、接続プールを作成する必要はありません。一方、JDBC の場合、接続プールを作成する必要があります。

17. 休止状態の統計を取得するにはどうすればよいですか?

以下に示すように、SessionFactory クラスの getStatistics() メソッドを使用して休止状態の統計を取得できます。

SessionFactory.getStatistics()

18. Hibernate における一時的なインスタンス状態とは何ですか?

インスタンスが永続コンテキストに関連付けられておらず、永続コンテキストにも関連付けられたことがない場合、そのインスタンスは一時状態にあると言われます。


19. Hibernate でのデータベース書き込みアクション時間を短縮するにはどうすればよいですか?

Hibernate は、データベースの書き込み時間を短縮するために使用できるダーティ チェック機能を提供します。 Hibernate のダーティ チェック機能は、変更が必要なフィールドのみを更新し、他のフィールドは変更されません。


20. 休止状態でのコールバック インターフェイスの使用法は何ですか?

Hibernate のコールバック インターフェイスは、オブジェクトからイベント通知を受信する場合に便利です。 たとえば、オブジェクトがロードまたは削除されると、イベントが生成され、コールバック インターフェイスを使用して通知が送信されます。


21. インスタンスが休止状態でデタッチ状態になるときは?

インスタンスが以前に何らかの永続コンテキスト (テーブルなど) に関連付けられていて、もう関連付けられていない場合、そのインスタンスはデタッチ状態になるように呼び出されます。


22. 休止状態における XNUMX つの ORM レベルとは何ですか?

休止状態における XNUMX つの 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. 休止状態構成の XNUMX つの方法は何ですか?

次の XNUMX つの休止状態構成方法のいずれかを使用できます。

  1. XML ベースの設定 (hibernate.cfg.xml ファイルを使用)
  2. プログラムによる構成 (コードロジックを使用)

25. Hibernate のデフォルトのキャッシュ サービスは何ですか?

Hibernate は EHCache、OSCache、SWARMCache、TreeCache などの複数のキャッシュ サービスをサポートしており、Hibernate のデフォルトのキャッシュ サービスは EHCache です。


26. Hibernate で使用される XNUMX つのマッピング関連付けは何ですか?

冬眠中。 エンティティ間には次の XNUMX 種類のマッピング関連付けがあります。

  1. XNUMX対XNUMXの関連付け
  2. 多対多の関連付け

27. Hibernate QBC API の使用法は何ですか?

Hibernate Query By Criteria (QBC) API は、実行時に基準オブジェクトを操作してクエリを作成するために使用されます。


28. 休止状態でデータベースからオブジェクトをフェッチできる方法は何通りありますか?

Hibernate は、データベースからオブジェクトをフェッチする次の XNUMX つの方法を提供します。

  • HQL の使用
  • 識別子の使用
  • 基準APIの使用
  • 標準 SQL の使用

29. Hibernate を使用して主キーはどのように作成されますか?

データベースの主キーは、構成ファイル hbm.xml で指定されます。 ジェネレーターは、データベース内で主キーがどのように作成されるかを指定するために使用することもできます。
以下の例では、deptId が主キーとして機能します。


30. Hibernate で切り離されたオブジェクトを再アタッチするにはどうすればよいですか?

デタッチされて永続エンティティに関連付けられなくなったオブジェクトは、セッション クラスの session.merge() メソッドを呼び出すことで再アタッチできます。


31. 休止状態の XNUMX 次キャッシュを無効にするさまざまな方法には何がありますか?

Hibernate の XNUMX 次キャッシュは、次のいずれかの方法を使用して無効にすることができます。

  • use_second_level_cache を false に設定することによって。
  • CACHEMODE.IGNORE を使用する
  • キャッシュプロバイダーを org.hibernate.cache.NoCacheProvider として使用する

32. ORM メタデータとは何ですか?

クラスとテーブル、プロパティと列、Java 型と SQL 型などの間のすべてのマッピングは、ORM メタデータで定義されます。


33. 休止状態でのデフォルトのトランザクション ファクトリはどれですか?

Hibernate 3.2 では、デフォルトのトランザクション ファクトリは JDBCTransactionFactory です。


34. 休止状態における JMX の役割は何ですか?

Java アプリケーションとコンポーネントは、JMX API と呼ばれる標準 API によって休止状態で管理されます。 JMX は、効率的で堅牢な分散型 Web ベース ソリューションを開発するためのツールを提供します。


35. Hibernate セッション ファクトリを JNDI にバインドするにはどうすればよいですか?

Hibernate.cfg ファイルの設定を変更することで、Hibernate セッション ファクトリを JNDI にバインドできます。


36. Hibernate でオブジェクトを識別できる方法は何通りありますか?

オブジェクトの識別は、次の XNUMX つの方法で休止状態で行うことができます。

  • オブジェクト ID の使用: == 演算子を使用します。
  • オブジェクトの等価性の使用:equals() メソッドを使用します。
  • データベース ID の使用: リレーショナル データベース オブジェクトは、同じ行を表す場合に識別できます。

37. Hibernate のフェッチ戦略にはどのようなものがありますか?

次のフェッチ戦略が休止状態で使用できます。

  1. 結合フェッチ
  2. バッチフェッチ
  3. フェッチの選択
  4. サブセレクトフェッチ

38. Java オブジェクトのデータベース テーブルとのマッピングはどのように行われますか?

Java オブジェクトをデータベース テーブルにマップするには、Java Bean のプロパティ名がデータベース テーブルの列名と同じである必要があります。 次に、以下に示すように、hbm.xml ファイルでマッピングが提供されます。


39. Hibernate の派生プロパティとは何ですか?

派生プロパティは、データベース テーブルのどの列にもマップされていないプロパティです。 このようなプロパティは、式の評価によって実行時に計算されます。


40. 休止状態での名前付き SQL クエリとは何を意味しますか?また、その使用方法は何ですか?

名前付き SQL クエリは、マッピング ファイルで定義され、必要に応じてどこからでも呼び出されるクエリです。
たとえば、次のように XML マッピング ファイルに SQL クエリを記述することができます。

次に、このクエリは次のように呼び出すことができます。

List students = session.getNamedQuery("studentdetails")
.setString("TomBrady", name)
.setMaxResults(50)
.list();

41. 休止状態でのload()メソッドとget()メソッドの違いは何ですか?

必要なレコードがデータベース内に見つからない場合、Load() メソッドは例外を返しますが、ID に対するレコードがデータベース内に見つからない場合、get() メソッドは null を返します。
したがって、理想的には、ID に対するレコードの存在が確実な場合にのみ Load() メソッドを使用する必要があります。


42. Hibernate での version プロパティの用途は何ですか?

Version プロパティは、オブジェクトが一時状態にあるか分離状態にあるかを知るために休止状態で使用されます。


43. 属性指向プログラミングとは何ですか?

属性指向プログラミングでは、開発者は Java ソース コードにメタ データ (属性) を追加して、コードの重要性をさらに高めることができます。 Java (休止状態) の場合、属性指向プログラミングは、XDoclet と呼ばれるエンジンによって有効になります。


44. 休止状態での session.lock() の用途は何ですか?

session クラスの session.lock() メソッドは、以前にデタッチされたオブジェクトを再アタッチするために使用されます。 この再アタッチ方法では、オブジェクトの再アタッチ中にデータベース内のデータの同期がチェックされないため、データの同期が失われる可能性があります。


45. Hibernate はポリモーフィズムをサポートしていますか?

はい、Hibernate はポリモーフィズムを完全にサポートしています。 ポリモーフィズム クエリとポリモーフィズム関連付けは、Hibernate のすべてのマッピング戦略でサポートされています。


46. Hibernate の XNUMX つの継承モデルとは何ですか?

Hibernate には次の XNUMX つの継承モデルがあります。

  1. コンクリート クラスごとのテーブル
  2. クラス階層ごとのテーブル
  3. サブクラスごとのテーブル

47. クラスを不変としてマッピングするにはどうすればよいですか?

アプリケーションが休止状態でクラスのオブジェクトを更新または削除したくない場合は、mutable=false を設定することでクラスを不変にすることができます。


48. RDBMS を使用した一般的な Hibernate フローとは何ですか?

RDBMS に関係する一般的な休止状態のフローは次のとおりです。

  • 設定ファイルを読み込み、設定クラスのオブジェクトを作成します。
  • 設定オブジェクトを使用して、sessionFactory オブジェクトを作成します。
  • sessionFactory からセッションを XNUMX つ取得します。
  • HQLクエリを作成します。
  • HQLクエリを実行して結果を取得します。 結果はリスト形式で表示されます。

49. ライトオブジェクトマッピングとは何ですか?

ライト オブジェクト マッピングは、すべてのエンティティがクラスとして表され、手動でマッピングされる ORM 品質レベルの XNUMX つです。


50. 管理された関連付けと休止状態の関連付けの違いは何ですか?

マネージド アソシエーションはコンテナ管理の永続性に関連しており、双方向ですが、休止状態のアソシエーションは単方向です。


これらの面接の質問は、あなたの活力(口頭)にも役立ちます

シェアする

4のコメント

  1. アバター ナレンドラ 言います:

    QNSの優れたコレクション…

  2. アバター Bipil Raut - ソフトウェア開発者 言います:

    素晴らしい説明、、、、

  3. アバター クランチ 言います:

    以下の質問も追加していただけますか

    休止状態でストアド プロシージャを呼び出すにはどうすればよいでしょうか?
    注文収集と分別収集
    永続的な状態とは何ですか
    ダーティ チェックの構成方法
    コールバックインターフェースを設定する
    オブジェクトを切り離す方法
    一時オブジェクトをデタッチするとどうなるか
    Hibernate のすべての ORM レベルを説明する
    第 XNUMX レベルと第 XNUMX レベルのキャッシュを有効/無効にする方法
    Hibernate セッション ファクトリを JNDI にバインドするにはどうすればよいでしょうか?
    休止状態でのload()メソッドとget()メソッドの違いは何ですか?
    session.lock() と session.merge() の違い
    クラスが不変としてマップされる方法とその理由
    新しいカスタム インターフェイスを使用して、Hibernate の組み込みインターフェイスの機能を強化するにはどうすればよいでしょうか?

    1. アバター メフル・パテル 言います:

      管理人さん、この質問や、競争試験用のより重要な MCQ のような質問を追加していただければ有益です。

コメントを残す

あなたのメールアドレスは公開されません。 必須フィールドは、マークされています *