最近、私は多くのハイバネートチュートリアルを書きました。ハイバネートは現在の市場で最高のJava ORMツールの1つです。したがって、この投稿は、すべてのハイバネートチュートリアルと例の索引のようなものです。これらのハイバネートチュートリアルを順番に見て、スクラッチからハイバネートを学ぶことができます。おそらく、私はリストにさらに多くのハイバネートチュートリアルを追加する予定なので、ブックマークして定期的にチェックしてください。
ハイバネートチュートリアル
- 初心者向けハイバネートチュートリアルハイバネートはJPAアノテーションをサポートしており、非常に柔軟です。XML、プロパティファイル、プログラムを使用して構成できます。このチュートリアルは、ハイバネートフレームワークを始めるための素晴らしい方法です。このチュートリアルでは、ハイバネートに必要なさまざまな構成に焦点を当て、単純なXMLベースのマッピングとJPAアノテーションベースのマッピングの例を提供します。また、
SessionFactory
の初期化方法と、ハイバネートフレームワークの重要なコンポーネントについても学びます。 - Hibernate One-to-One マッピング ほとんどの場合、データベースのテーブルは互いに関連付けられています。関連付けの形式には、一対一、一対多、多対多などがありますが、これらはさらに単方向および双方向のマッピングに細分化できます。このチュートリアルでは、XML構成を使用したHibernate One to Oneマッピングの実装方法と、JPA注釈構成を使用した方法について説明します。
- Hibernate One-to-Many マッピング 簡単に言えば、1対多のマッピングとは、1つのテーブルの行が別のテーブルの複数の行にマップされることを意味します。たとえば、アイテムの別のテーブルを持つカートシステムを考えてみてください。カートには複数のアイテムが含まれる場合があるため、ここでは1対多のマッピングがあります。このチュートリアルでは、XMLベースの構成を使用したOne to Manyマッピングの実装方法、およびHibernate注釈を使用した方法について説明します。
- Hibernate Many-to-Many マッピング 多対多のマッピングは、通常、結合テーブルを使用してデータベースで実装されます。たとえば、カートとアイテムのテーブル、および多対多のマッピングのためのCart_Itemsテーブルを持つことができます。各カートに複数のアイテムが含まれ、各アイテムが複数のカートの一部になる可能性があるため、ここでは多対多のマッピングがあります。このチュートリアルでは、Hibernate多対多の単方向および双方向のマッピングについて説明します。
- Hibernate Query Language (HQL) Hibernateフレームワークには、強力なオブジェクト指向クエリ言語であるHibernate Query Language(HQL)が付属しています。これは、テーブル名の代わりにオブジェクトを使用する点を除いて、SQLに非常に類似しています。これにより、オブジェクト指向プログラミングにより近づけることができます。この記事では、HQLとHQL言語でサポートされる異なる節について説明します。
- HibernateネイティブSQLクエリ Hibernateは、SQLQueryオブジェクトを使用してネイティブSQLクエリを実行するオプションを提供しています。これは、Hibernate APIでサポートされていないクエリヒントやOracleデータベースのCONNECTキーワードなど、データベース固有のクエリを実行したい場合に非常に便利です。
- Hibernate名前付きクエリ HQLまたはネイティブSQLクエリが多すぎると、すべてのクエリがプロジェクト全体に散在するため、コードが混乱します。そのため、Hibernateは名前付きクエリを提供し、これを中央の場所で定義し、コードのどこでも使用できるようにします。HQLおよびネイティブSQLの両方の名前付きクエリを作成できます。Hibernate名前付きクエリは、Hibernateマッピングファイルで
query
またはsql-query
要素を使用するか、JPA注釈@NamedQueryおよび@NamedNativeQueryを使用して定義できます。 - Hibernate Criteria Hibernateは、よりオブジェクト指向のクエリを実行して結果を取得するためのCriteria APIを提供しています。Criteriaを使用して更新または削除クエリや任意のDDL文を実行することはできません。これは、よりオブジェクト指向のアプローチを使用してデータベースから結果を取得するためにのみ使用されます。Criteria APIの一般的な使用法には、sum()、min()、max()などの集計関数に使用できるProjectionがあります。選択した列のみを取得するためのProjectionList、結果を並べ替えるなどがあります。
- Hibernate First Level Cache Hibernateキャッシュは、正しく使用されればアプリケーションのパフォーマンスを高速化するのに非常に役立ちます。キャッシュのアイデアは、データベースクエリの数を減らし、それによりアプリケーションのスループット時間を短縮することです。Hibernateの一次キャッシュはSessionオブジェクトに関連付けられています。Hibernateの一次キャッシュはデフォルトで有効になっており、無効にする方法はありません。ただし、Hibernateはキャッシュから選択したオブジェクトを削除したり、キャッシュを完全にクリアする方法を提供しています。セッションにキャッシュされたオブジェクトは他のセッションからは見えず、セッションが閉じられると、キャッシュされたすべてのオブジェクトも失われます。
- Hibernate Second Level Cache with EHCache Hibernateの第2レベルキャッシュプロバイダにはEHCacheとInfinispanがありますが、EHCacheがより人気があります。なぜなら、統合が簡単で、すべてのHibernateキャッシュ戦略をサポートしているからです。このチュートリアルでは、HibernateフレームワークとEHCacheを統合する完全な例を提供します。
- Hibernateのgetとload Hibernateセッションはデータベースからデータを取得するための異なるメソッドを提供します。そのうちの2つはget()とload()です。これらのためには、異なる状況で使用できる多くのオーバーロードされたメソッドもあります。最初に見ると、get()とload()は似ているように見えますが、両方ともデータベースからデータを取得します。ただし、それらの間にはいくつかの違いがあります。このチュートリアルでは、それについて例示コードとともに説明します。
- Hibernateのsaveとpersist Hibernateセッションは、JavaアプリケーションとHibernateフレームワークの間のインターフェースです。このチュートリアルでは、テーブルにデータを保存および更新するためのセッションの重要なメソッドであるsave、saveOrUpdate、persist、update、およびmergeについて説明します。
- Hibernate openSession vs getCurrentSession Hibernate SessionFactoryは、セッションを取得しデータベース操作を行うためのファクトリクラスです。Hibernate SessionFactoryには、getCurrentSession()、openSession()、およびopenStatelessSession()の3つのメソッドがあります。このチュートリアルでは、それぞれのメソッドについて例を示しながら説明します。
- Hibernate log4j integration Hibernate 4ではJBossログが使用されていますが、log4jは最も一般的なログフレームワークです。log4jロギングをHibernateフレームワークに統合する方法を簡単に説明するチュートリアルです。
- Hibernate Tomcat JNDI DataSource Example ほとんどの場合、HibernateフレームワークはTomcatや他のサーブレットコンテナで実行されるWebアプリケーションで使用されます。Hibernateは、コンテナ内でJNDIリソースとして定義されたDataSourceを使用できます。これは、サーブレットコンテナが接続プーリングを使用してデータベース接続を処理するための推奨されるアプローチです。
- Spring Hibernate Integration Springは最も使用されているJava EEフレームワークの1つであり、Hibernateは最も人気のあるORMフレームワークです。そのため、企業アプリケーションでSpring Hibernateの組み合わせがよく使用されます。このチュートリアルでは、Spring 4を使用してHibernate 3と統合し、その後同じプロジェクトをHibernate 4を使用するように更新します。
- Spring MVC Hibernateの例このチュートリアルは、HibernateをSpring MVCと統合し、Hibernateトランザクション管理ではなくSpring宣言型トランザクション管理を使用する方法を説明します。
- Struts2 Hibernateの統合例このチュートリアルでは、ServletContextListerを使用して任意のWebアプリケーションにHibernateを統合する一般的な方法を説明します。この例では、Struts2をHibernateと統合していますが、裏での統合はServletテクノロジーのみを使用しています。これはSpringの統合とは異なり、Struts2はHibernate統合のための組み込みサポートを提供していません。
- Hibernate Validatorの例データの検証は、どのアプリケーションにおいても重要な部分です。それは、表示層、ビジネス層、そして永続層で発生するクロスカットのタスクです。そのため、JSR-303は、Javaビーンのプロパティに検証を適用するためのアノテーションベースの標準を提供しています。Hibernate ValidatorはJSR-303をサポートし、このチュートリアルでは単純な例を使用してその使用方法を示しています。
- Hibernate Tools Eclipse Plugin ハイバネートプロジェクトに取り組んだことがある場合、ハイバネートのマッピングや設定ファイルに必要な多くのプロパティに精通しているはずです。正しいプロパティを探すための適切なツールがないと、アプリケーションの設定を正しく行うのが非常に難しくなります。このような場合に便利なのが、ハイバネートツールのEclipseプラグインです。ハイバネートプロジェクトには必須のプラグインです。
- ハイバネートインタビューの質問 ハイバネートフレームワークについての良い知識は、Javaベースのインタビューでのプラスポイントです。それが私がこの記事を書いた理由です。詳細な回答付きで、ハイバネートフレームワークに関連する重要な質問のほとんどが含まれています。知識を振り返すためにインタビューを受ける前に、これらを参照する必要があります。
ハイバネートチュートリアル – よくあるエラーの修正
- hibernate.cfg.xmlをオフラインで動作させる方法
- org.hibernate.AnnotationException: エンティティクラスに識別子が指定されていません
- org.hibernate.HibernateException: アクティブなトランザクションがない場合、getは無効です
- org.hibernate.HibernateException: CurrentSessionContextが構成されていません
- Hibernateプログラムが終了しない
- ‘hibernate.dialect’が設定されていない場合、DialectResolutionInfoへのアクセスはnullであってはなりません
Source:
https://www.digitalocean.com/community/tutorials/hibernate-tutorial