- JPAとは何ですか? JDBC との違いは何ですか?
php エディター Strawberry は、永続化フレームワークの習熟度をテストするために、Java JPA の面接の質問をいくつか選びました。これらの質問は、JPA の基本的な知識、高度な機能、実際の応用シナリオをカバーしており、面接の準備を整え、技術的能力を実証するのに役立ちます。初心者も経験豊富な開発者も、これらの質問から JPA について詳しく学び、永続化フレームワークでのスキルを向上させることができます。
- JPA ではエンティティとは何ですか?
Entities は、JPA で永続オブジェクトを表すために使用されるクラスです。 @Entity アノテーションを使用して定義でき、Serializable インターフェイスを実装する必要があります。通常、エンティティ クラスにはフィールド、プロパティ、およびメソッドが含まれます。これらのフィールドとプロパティはデータベース内の列とテーブルに対応し、メソッドはこれらのフィールドとプロパティを操作するために使用されます。
- JPA の永続化戦略とは何ですか?それぞれの長所と短所を説明します。
JPA は、次のようなさまざまな永続化戦略を提供します。
-
マネージド: エンティティは EntityManager を通じて管理され、ライフサイクルは JPA によって制御されます。エンティティの管理が簡素化されるという利点がありますが、メモリのオーバーヘッドが増加するという欠点があります。
-
Detached: エンティティは EntityManager から分離されており、JPA の管理下にありません。利点は、メモリのオーバーヘッドが削減されることですが、欠点は、エンティティのライフ サイクルを維持する必要があることです。手動で管理されています。
-
一時: エンティティは永続化操作に参加しません。利点は、データベースに永続化されないことです。欠点は、JPA によって管理およびクエリできないことです。
-
削除 (削除): エンティティは削除対象としてマークされ、 トランザクション が送信された後にデータベースから削除されます。利点は、データの一貫性が確保されることですが、欠点は、エンティティのライフサイクルを手動で管理する必要があることです。
- JPA でクエリ言語 (JPQL) を使用してデータをクエリするにはどうすればよいですか?
JPQL (Java Persistence Query Language) は、JPA でデータをクエリするために使用される言語です。SQL に似ていますが、構文はより単純で Java 言語に近いです。 JPQL クエリは 2 つのカテゴリに分類できます:
-
クエリの選択: 特定の条件を満たすデータを取得するために使用されます。構文は次のとおりです: SELECT [select_clause] FROM [entity_name] [where_clause]
-
更新クエリ: データの更新または削除に使用されます。構文は次のとおりです: UPDATE [entity_name] SET [assignment_clause] [where_clause] または DELETE FROM [entity_name] [where_clause]
- JPA でリレーションシップ マッピングを実装するにはどうすればよいですか?
JPA は、次のような複数の関係マッピング タイプをサポートします。
-
1 対 1 (OneToOne): エンティティは別のエンティティと 1 対 1 の関係を確立できます。これは @OneToOne アノテーションによって定義できます。
-
1 対多 (OneToMany): エンティティは複数のエンティティと 1 対多の関係を確立できます。これは @OneToMany アノテーションによって定義できます。
-
多対 1 (ManyToOne): 複数のエンティティは 1 つのエンティティと多対 1 の関係を確立できます。これは @ManyToOne アノテーションで定義できます。
-
多対多 (ManyToMany): 複数のエンティティは複数のエンティティと多対多の関係を確立できます。これは @ManyToMany アノテーションで定義できます。
- JPA でパフォーマンスを最適化するにはどうすればよいですか?
JPA は、次のようなさまざまな パフォーマンス最適化 テクノロジーを提供します。
- キャッシュの使用: JPA は、 エンティティとクエリ結果を キャッシュすることでパフォーマンスを向上させることができます。
- インデックスの使用: データベース テーブルに indexes を作成して、クエリのパフォーマンスを向上させることができます。
- バッチ処理を使用する: JPA は、バッチ データの更新または削除のパフォーマンスを向上させるバッチ処理操作をサポートしています。
- 非同期クエリを使用する: JPA は、メイン スレッド をブロックせずにバックグラウンドでクエリを実行できる非同期クエリをサポートしています。
以上がJava JPA の面接で選ばれた質問: 永続化フレームワークの習熟度をテストするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。