AI Academy
キャンペーン
CodeGym University
学習
コース
課題
アンケート & クイズ
ゲーム
ヘルプ
スケジュール
コミュニティ
ユーザー
フォーラム
チャット
記事
成功事例
アクティビティ
レビュー
サブスクリプション
ライトテーマ
レッスン
レビュー
私たちについて
開始
学習開始
今すぐ学習を始める
学習の進捗
コース
クエストマップ
レッスン
Java
SQL & Hibernate
レベル 14
遅延読み込み
SQL & Hibernate
レベル 14,
レッスン 0
1.1 問題の背景 実際のデータベースを扱い始めると、「時期尚早の最適化は諸悪の根源である」という言葉をすぐに思い出すでしょう。今になって初めて、あなたは彼女のことを否定的な意味で思い出しました。データベースを操作する場合、最適化は不可欠です。そして、設計段階ですでにそれを扱う必要があります。 Hibernate を使用すると、データベースの操作が非常に便利になります。@OneToManyとに適切に注釈を付けるだけで、子オブジェクトを簡単に取得できます@ManyToMany。
コレクションをマッピングするときの遅延読み込み
SQL & Hibernate
レベル 14,
レッスン 1
2.1 フェッチオプション Hibernate の開発者は、子エンティティのロードに関する問題については長い間認識していました。そこで彼らが最初に行ったのは、特別なフェッチパラメータをアノテーションに追加することでした@OneToMany。@ManyToMany このパラメータには次の 2 つの値を指定できます。 熱心 怠惰 例: @OneToMany(fetch = FetchType.LAZY, mappedBy = "user")
LazyCollectionOption.EXTRA
SQL & Hibernate
レベル 14,
レッスン 2
LazyCollectionOption.EXTRA について知る しかし、最も興味深いのは LazyCollectionOption.EXTRA 値です。これを@LazyCollectionアノテーションの値として指定すると、Hibernate はコレクションの要素のロードを可能な限り遅延させます。 コレクション内の要素の数を取得しようとすると、次のようになります。 User user = session.load(User.class, 1);
結合フェッチ
SQL & Hibernate
レベル 14,
レッスン 3
問題の説明 上で述べたように、 LazyCollectionOption.EXTRAアノテーションには問題があります。オブジェクトごとにデータベースに対して個別のリクエストを実行します。親オブジェクトのすべての子オブジェクトをすぐにロードするように Hibernate に何らかの方法で説明する必要があります。 Hibernate の開発者は、HQL の結合フェッチ演算子というこの問題の解決策を考え出しました。 HQL クエリの例: select distinct task f
Hibernate でのデータ キャッシュ
SQL & Hibernate
レベル 14,
レッスン 4
キャッシュ ソリューションを決して作成しないでください データベースの操作を高速化するもう 1 つの方法は、以前にすでにリクエストしたオブジェクトをキャッシュすることです。 重要!決して独自のキャッシュ ソリューションを作成しないでください。この作業には、あなたが夢にも思わなかった落とし穴がたくさんあります。 発行 1 -キャッシュのフラッシュ。オブジェクトをキャッシュから削除する必要がある場合、またはキャッシュ内で更新する必要がある場合に、イベントが発生することがあります。
2次キャッシュの構成
SQL & Hibernate
レベル 14,
レッスン 5
同時実行戦略 Hibernate で第 2 レベルのキャッシュを有効にした後、どの Entity オブジェクトをどのようにキャッシュするかを Hibernate に説明する必要があります。 これを行うために、Hibernate にはエンティティ クラス用の特別なアノテーション@Cacheがあります。例: @Cache(usage = CacheConcurrencyStrategy.READ_WRITE) このアノテーションは、2 次キャッシュを使用するエンティティごとに記述
クエリキャッシュのカスタマイズ
SQL & Hibernate
レベル 14,
レッスン 6
クエリキャッシュが必要な理由 HQL で従業員を取得する例を書き直してみましょう。 Employee director1 = session.createQuery("from Employee where id = 4").uniqueResult();
キャッシュ エンジンのセットアップ
SQL & Hibernate
レベル 14,
レッスン 7
キャッシュの設定 hibernate.cfg.xml ファイルのキャッシュ設定に戻りましょう。
Please enable JavaScript to continue using this application.