トップ50のHibernateインタビューの質問と回答[初心者と経験者向け]

公開: 2020-12-15

目次

序章

HibernateはJavaの軽量なオープンソース技術です。このブログでは、Hibernateに関するプロセスとメカニズムを上位の「50のHibernateインタビューの質問と回答」で理解します。

Hibernateとは何ですか?

Hibernateは、オープンソースのオブジェクトリレーショナルマッピングである軽量ツールです。 これは、オブジェクト指向ドメインモデルをWebベースのアプリケーションのリレーショナルデータベースにマッピングするためのフレームワークを提供します。

Hibernateを適応させる前に、アプリケーション要件について尋ねる必要のあるいくつかの質問を次に示します。

  1. 新しいプロジェクト開発、アプリケーション設計、またはデータモデルに使用できるデータモデルはどれですか?
  2. キャッシュパフォーマンスのレベルはどれくらいですか?
  3. 単純または複雑な文章をどのように定義できますか?
  4. スケーラビリティの使用とは何ですか?また、どのようなシナリオでそれを使用できますか?
  5. データベースの自動バージョン管理はどのシナリオで重要ですか?
  6. JAVAにはリレーショナル永続性が必要ですか?
  7. クエリ言語のサポートの使用とは何ですか?また、どのようなシナリオで使用できますか?
  8. 透過的永続性プロセスとそのプロジェクトへの影響は何ですか?

ORMツール

データの作成、データの操作、およびデータへのアクセスを解釈します。 これは、オブジェクトをデータベースに格納されているデータにマップするプログラミングアプローチです。

Hibernateフレームワークとは何ですか?

Hibernateは、オブジェクトリレーショナルJavaベースのORMツールマッピングソリューションです。 これは、アプリケーションドメインモデルオブジェクトをリレーショナルデータベーステーブルにマッピングするためのプログラミング手順であるオブジェクトリレーショナルマッピングです。 これは、Java Persistence APIの実装ソースを実装しており、緩い結合の利点を備えたORMツールとして優れた選択肢を提供します。

Hibernateフレームワークの利点

  1. 高速で軽量:Hibernateフレームワークのパフォーマンスは、Hibernateフレームワークの内部で機能するキャッシュの助けを借りて機敏になります。 Hibernateフレームワークのキャッシュは、第1レベルのキャッシュと第2レベルのキャッシュです。
  2. データベース自律クエリ:HQL(Hibernateクエリ言語)は、SQLのオブジェクト指向バリアントです。 データベース固有のクエリを作成せずに、独立したデータベースクエリを作成します。
  3. 自動テーブル作成:Hibernateフレームワークは、データベースのテーブルを自動的に生成する機能を提供します。 データベースにテーブルを手動で作成せずに。
  4. 複雑な結合を簡素化:Hibernateフレームワークでは、集約テーブルからのデータの取得が簡単です。
  5. クエリ統計とデータベースステータスに対応:Hibernateはクエリキャッシュを維持し、統計に高速な結果を提供します。

Hibernateアーキテクチャ

Hibernateアーキテクチャは、永続オブジェクト、セッションファクトリ、トランザクションファクトリ、接続ファクトリ、セッション、トランザクションなどの多くのオブジェクトを統合します。

Hibernateアーキテクチャは、次の4つの層に分類されます。

  • Javaアプリケーション層
  • Hibernateフレームワーク層
  • バックハンドAPI層
  • データベース層

なぜ休止状態のプロセスを選択する必要があるのですか?

プロセスの適応を開始するときに選択できる以下の手法とプロセスを次に示します。

  • Hibernateを使用すると、開発者はアプリケーションのバージョンタイプフィールドを決定できます。このフィールドは、リアルタイムデータで変更できます。 この機能により、ユーザーはデータを保存すると同時に変更することができます。
  • HibernateはJPAアノテーションへの支援を実装します-例:@ Entity、@ Table、@Colなど。
  • Hibernateでは、接続プーリングは、外部ツールによってキャッシュを作成して保存するときのデータベース接続の手法です。これらの接続は、同じデータベースに接続するために再利用する必要がある場合に、将来的にキャッシュ自体から再利用できます。私たちが作成したアプリケーション
  • Hibernateは、あらゆる環境で最高のスケーラビリティを拡張します。 小規模なアプリから数百万人が使用するアプリまで、あらゆる規模のプロジェクトで実践できます。
  • Hibernateでは、データベースのバージョン管理は、変更が他のユーザーによって誤ってロールバックされるのを防ぐことをサポートする重要なツールです。 これにより、アプリケーション内のバージョンタイプを記録できます。 データ、バージョンタイプ、タイムスタンプが更新または保存されると、追跡のために記録することもできます。
  • Hibernateは透過的な永続性を実装し、開発者はRDBMSとの対話中にデータベーステーブルタプルをアプリケーションオブジェクトにマップするためのコードを明示的に記述する必要はありません。
  • Hibernateでは、トランザクション管理は一連のステートメントまたはコマンドを実行する方法です。 Hibernateでは、トランザクション管理はトランザクションインターフェースによって行われます。

JDBCを介したHibernateを検討する5つの理由

  1. オブジェクトリレーショナルの複雑な不一致の問題を解決します。

リレーショナルデータベースを使用して、オブジェクト指向プログラミング言語で迅速なソリューションを提供します。

例:データ型の不一致、構造と整合性の違い、操作とトランザクションの例外はすべて、オブジェクトリレーショナルの複雑な不一致を引き起こす可能性があります。

2.自動オブジェクトマッピング:

JDBCとHibernateは、自動オブジェクトマッピングをサポートしているという事実にあります。」 透過的永続性」、このメソッドは、相互作用を通じてデータベーステーブルをアプリケーションオブジェクトにドラフトするためのHibernateを提供します。

  1. Hibernateクエリ言語(HQL)

HibernateはStructuredQueryLanguage(SQL)を維持しています。 JDBCはSQLのみをサポートします。Hibernateクエリ言語(HQL)は、オブジェクト指向のクエリ言語であるという点でSQLに関連しています。 道をつなぐために、HQLはクエリをSQLクエリに向けて解釈し、SQLクエリはデータベースで操作を開始できます。

  1. データベースの独立性

Hibernateは、XMLファイルを介してデータテーブルとアプリケーションを接続するマッピングを提供します。 必要に応じて、データを新しいデータベースに転送するためのより良い方法を提供します。 データベースにアクセスする方法は、再利用可能な場合は情報が必要です。 キャッシングはデータベースのパフォーマンスに不可欠なコンポーネントであり、時間を短縮し、アプリケーションをリアルタイムでサポートします。

  1. Hibernateでの接続プール:

Hibernateはより信頼性の高いパフォーマンスを実現できます。 「接続プール」を提供します。 これは、データベース接続をキャッシュに収集するプロセスです。 アプリが同じデータベースに複数回接続しようとした場合、これらの接続はキャッシュ自体から再利用できます。

Hibernateインタビューの質問と回答

質問:1実行されたSQLステートメントを書き込み、バインドパラメーターをログファイルに使用するようにHibernateをどのように構成しますか?

回答:以下の手順があります。

2つの異なるログセクションとログレベルを作成して、実行されたSQLステートメントとバインドパラメータをログに記録します。

  • カテゴリorg.hibernate.SQL
  • ログレベルTRACEのorg.hibernate.type.descriptor.sqlカテゴリ。

質問: 2Hibernateフレームワークのお気に入りの機能について説明してください。

回答: ORMツール、Hibernateは強力なクエリ言語(HQL)を提供します

質問:3エンティティBeanと休止状態をどのように区別できますか。

回答:エンティティBeanは、コンテナ、クラス、記述子です。 Hibernateは、オブジェクトツリーをクラスに即座に永続化するツールです。

質問:4セッションオブジェクトのプロセスと、それを第1レベルのキャッシュと第2レベルのキャッシュでどのように使用できるかを説明してください。

回答:第1レベルのキャッシングセッションオブジェクトを使用して、各セッションごとに開始します

第2レベルのキャッシュ:複数のセッションを超えて共有できます

質問: 5Hibernateで継承はどのように機能しますか? それを実装するために利用できるさまざまな戦略は何ですか?

回答: 3種類の継承:

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

質問: 6Hibernateでロックはどのように機能しますか? 利用可能なさまざまなロックメカニズムは何ですか?

回答:ロックメカニズムは楽観的で悲観的質問: 7Hibernateでトランザクション管理はどのように機能しますか?

回答: (JTA、JDBC)の助けを借りて動作します。

質問: 8Hibernateでの遅延読み込みとは何ですか?

回答:クラスのプロキシを実装することによる、エンティティとその関連付けに関するこのメカニズム。

質問: 9Hibernateで利用可能なさまざまなフェッチ戦略は何ですか?

回答:フェッチに参加し、フェッチを選択します

質問: 10Hibernateで利用可能なさまざまなフェッチ戦略は何ですか?

回答: Join-FetchingとSelect Fetchingsは、Hibernateで使用可能なフェッチです。

質問: 11Hibernateでget()メソッドとload()メソッドの違いは何ですか?

回答:割り当てられた識別子のデータをフェッチするために使用されるgetting()とload()。 Get()メソッドはnullを返し、load()メソッドはオブジェクトが見つからないというエラーをスローします。例外のタイプです。

質問:12エンティティクラスを最終的にしないのはなぜですか?

回答:エンティティバインドに使用されます。

質問:13分離天体の長所と短所を説明してください。

回答:過去のHibernateセッションに関連していました。 データベースに説明があります

質問: 14Hibernateクエリ言語(HQL)とは何ですか?

回答:これはOOPSの概念に基づいています。

質問: 15HibernateでSessionFactoryインターフェースが果たす役割を説明してください。

回答:これはスレッドセーフオブジェクトのプロセスであり、アプリケーションスレッドプロセスで使用できます。

質問:16 JDBCに対するHibernateの利点は何ですか?

回答:最速のパフォーマンスとスケーラビリティを提供します。

質問: 17Hibernateによって維持されているいくつかのデータベースについて説明してください。

回答: JDBCを使用したリレーショナルデータベース。

質問: 18session.save()メソッドとsession.persist()メソッドをどのように区別できますか?

回答: Session.save()はデータベースにオブジェクトを保存するために使用され、session.persist()は一時的な永続オブジェクトに使用されます。

質問:19更新とマージの方法について説明してください。

回答:切り離された状態にあるオブジェクトを変換するために使用できます。

質問:201対1および多対1でコレクションマッピングを実行することは可能ですか?

回答:別のテーブルの多くの行にマップされているテーブルで使用できます。

質問: 21Hibernateでトランザクションを実行するにはどうすればよいですか?

回答: @transctionalクラス宣言の助けを借りて、トランザクションを実行できます。

質問:22オブジェクト/リレーショナルマッピングはHibernateでどこに表されますか?

回答: HibernateORMはオブジェクト/リレーショナルマッピングです。

質問:23ライトオブジェクトについてどう思いますか?

回答:セッション、クエリ、基準、トランザクションはライトオブジェクトの概念です。

質問: 24Hibernateの@Transientとは何ですか? これの利点は何ですか?

回答: @ Transientこれは、永続パッケージであるjavaxに適用されました。

質問: 25Struts Spring Hibernateを組み合わせる方法は?

回答: ContextLoaderPlugInの助けを借りて、組み合わせることができます。

質問: 26HibernateLog4jロギングについて説明してください。

回答: Bylog4j.xmlファイルとlog4j.propertiesファイルで構成されています。

質問:27 Hibernateで同時更新を制限するにはどうすればよいですか?

回答:ペシミスティックロックプロセスの助けを借りて、同時更新を制限できます。

質問:28 Hibernate永続クラスを決定するための最良の方法は何ですか?

回答:永続クラスとそのメカニズムのマッピングで使用できる多くのベストメソッドとベストプラクティスがあります。

質問:29永続オブジェクトの変更の概念は何ですか?

答え: 永続オブジェクト休止状態によって追跡され、コミット要求が発生するとデータベースに格納されます。

質問:30 Hibernateの1対多の双方向関係とは何ですか?

回答: mappedBy属性の利点として、多くのビューの関連付け属性のハンドルの参照です。Hibernateには必要なすべての知識があります。 これらのプロセスでは、双方向の多対1の関連付けを定義する必要があります。

読む:フルスタック開発者になるためのスキル

質問:31メッセージリソースバンドル作業での値の置換とは何ですか?

回答: Hibernate ValidatorのResourceBundleMessageInterpolatorは、UserDefined検証用のResourceBundleLocatorの2つのインスタンスを生成します。標準の検証メッセージ–defaultResourceBundleLocator

質問: 32SQLステートメントの実行順序のプロセスを説明してください。

回答:外部キー制約を破ることができないため、特定の順序での第2レベルのキャッシュ:挿入、更新、配列要素の削除、配列要素の挿入、削除、それらが提示された方向

質問:33 EHCacheを使用してHibernateで第2レベルのキャッシュを設定するにはどうすればよいですか?

回答: Terracotta Ehcacheは、 Hibernateの第2レベルのキャッシュとして機能する最新のキャッシュです。 スタンドアロンの第2レベルのキャッシュとして実行できます

質問:34エンティティBeanとHibernateの主な違いは何ですか?

回答:エンティティBeanは、記述子、コンテナ、クラスによって引き続き実行されます。 Hibernateは、オブジェクトツリーをデータベース内のクラス階層に即座に耐えるメカニズムにすぎません。

質問: 35Hibernateを使用して処理される参加の手順を説明してください。

回答: SQL結合の助けを借りて、私たちはそれを処理することができます。

質問: 36Hibernateプロキシのプロセスを説明してください。

回答: Hibernateプロキシこれは、 Sessionを呼び出すときHibernateを指します。 ロード()。

質問:37 SQLを使用するよりもHibernateを使用する主な利点は何ですか?

回答: ORMを実践し、 Hibernateを使用する場合、SQLを使用すると、Hibernateは大規模なクエリの記述を回避できます。

質問: 38Hibernateで使用できるデザインパターンを説明してください。

回答:プロキシパターン、ドメインモデル、オブジェクトモデルがデザインパターンです。

また読む:フルスタック開発のキャリア

質問: 39Hibernateのアーキテクチャについて説明してください。

回答: Hibernateには、基盤となるAPIを理解しなくてもユーザーが管理できる階層化アーキテクチャがあります。

質問:40 Hibernateでサポートされているデータ型をリストアップしますか?

回答: IntegerType、FloatType、DoubleType、CharacterType、ShortType。

質問:41 (JDO、CMP)とは何ですか?

回答:そのJava永続化テクノロジー。

質問:42春とHibernateの主な違いは何ですか?

回答: SpringとHibernateは2つの別個のフレームワークです。 はアプリケーションの流れを増幅して収縮します。 Hibernateは、アプリケーションとデータベース間の相互作用に関するものです。

質問:43 HibernateでORMソリューションを見つけることができるのはいつですか?

回答: Hibernateは、Java用のオブジェクト/リレーショナルマッピング(ORM)ソリューションの概念です。 オブジェクト/リレーショナルマッピングという用語は、オブジェクトモデル記述間でデータをリレーショナルデータモデル記述にマッピングする手順を指します。

質問: 44Hibernateでトランザクションを完了するためのステップバイステップのプロセスに言及してください。

回答: ACID->プロパティ(Atomicity、Consistency、Isolation、およびDurability)を使用します。

質問: 45Hibernateのマッピングはどこにありますか?

回答: HibernateマッピングはHibernateの機能です。 モデル内の属性を使用して、2つのデータベーステーブル間の接続を整理します。 これにより、モデルクエリと標準クエリの関連付けをすばやく実行できます。

質問: 46Hibernateマッピングで可能なさまざまなタイプの関係に触れることができますか?

回答: 1対1、多対1、1対多、多対多。

質問: 47Hibernateでオブジェクトマッピングをどこで定義できますか?

回答:データを格納するためJavaオブジェクトのSQLクエリへの変換

質問:48Hibernateの多数のコレクションタイプをリストアップできますか?

回答: HashMap、HashSet、TreeSet、およびArraylistは、Hibernateのコレクションタイプです。

質問: 49Hibernateのデータベースからデータをフェッチするプロセスは何ですか?

回答:セッションでbeginTransaction()API関数を使用するHibernate基準の助けを借りて、データをフェッチできます。

質問: 50JPAアノテーション@NamedQueryおよび@NamedNativeQueryを使用して、Hibernateマッピングファイルについて説明してください。

回答: @NamedQueryと@NamedNativeQueryは、HQLクエリのタイプであり、HQLを多数のSQLダイアレクトに変換する複雑さを処理します。

世界のトップ大学のソフトウェアエンジニアリングコースに登録します。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。

結論

この記事が、初心者および専門家向けのHibernateの「インタビュー」の質問トップ50を理解するのに役立つことを願っています。

フルスタックソフトウェア開発の詳細に興味がある場合は、upGrad&IIIT-Bのフルスタックソフトウェア開発のエグゼクティブPGプログラムをチェックしてください。これは、働く専門家向けに設計されており、500時間以上の厳格なトレーニング、9以上のプロジェクトを提供します。および割り当て、IIIT-B卒業生のステータス、実践的な実践的なキャップストーンプロジェクト、およびトップ企業との雇用支援。

あなたの夢の仕事に着陸

ソフトウェアエンジニアリングの修士号を今すぐ申し込む