Hibernateチュートリアル
Gavin Kingによって作成されたHibernateは、Java開発者にとって最良かつ支配的なオブジェクト/リレーショナル永続性(ORM)ツールとして知られています(現在は.NETをサポートしています)。 Javaのリレーショナルデータベース処理タスクを簡素化するための多くのエレガントで革新的な方法を提供します。
Hibernateは多くの点で優れていますが、適切に使用する必要があります。 このチュートリアルでは、Hibernate3の使用に関する多くのステップごとの例と説明を提供します。
P.S Tutorials are updated to Hibernate v3.6.1.Final.
Hibernateクイックスタート
Hibernateフレームワークを体験するHello Worldの例。
-
Maven 2 + Hibernate 3.2.3 + MySQL 5.0 Example (XML Mapping)
MySQLデータベースのHibernate3.2.3の例、従来のhbmマッピング。 -
Maven 2 + Hibernate 3.2.3 + MySQL 5.0 Example (Annotation)
MySQLデータベースのHibernate3.2.3の例、Hibernate / JPAアノテーション付き。 -
Maven 3 + Hibernate 3.6.3 + Oracle 11g Example (XML Mapping)
OracleデータベースのHibernate3.6の例、従来のhbmマッピング。 -
Maven 3 + Hibernate 3.6.3 + Oracle 11g Example (Annotation)
OracleデータベースのHibernate3.6の例、Hibernate / JPAアノテーション付き。
Hibernate Association(テーブルの関係)
Hibernateでテーブルの関係を1対1、1対多、多対多で定義する方法。
-
One-to-One example (XML Mapping)
hbmマッピングファイルを使用して1対1の例を休止状態にします。 -
One-to-One example (Annotation)
注釈コードを使用して1対1の例を休止状態にします。 -
One-to-Many example (XML Mapping)
hbmマッピングファイルを使用して1対多の例を休止状態にします。 -
One-to-Many example (Annotation)
注釈コードを使用して1対多の例を休止状態にします。 -
Many-to-Many example (XML Mapping)
hbmマッピングファイルを使用して、多対多の例(結合テーブルに余分な列がない)をHibernateします。 -
Many-to-Many example (Annotation)
注釈コードを使用して、多対多の例(結合テーブルに余分な列がない)をHibernateします。 -
Many-to-Many example – join table + extra column (Annotation)
注釈コードを使用して、多対多の例(結合テーブルに追加の列を含む)をHibernateします。 -
Off Topic : Understand inverse keywork, example and explanation
「inverse」はHibernateで最も紛らわしいキーワードですが、関係のパフォーマンスを微調整するには、これを明確に理解する必要があります。
Hibernate / JBoss Tools + Eclipse IDE
Hibernateツールの使用方法を学ぶことは必須です!
-
Install Hibernate / JBoss Tools in Eclipse IDE
EclipseIDEにHibernateをインストールします。 -
Generate Hibernate mapping files & annotation with Hibernate Tools
Hibernateコードを自動生成します。
休止状態のログ
Hibernateでロギングを行う方法
-
Configure logging in Hibernate – SLF4j + Log4j
SLF4j + Log4jをHibernateと統合します。 -
Configure logging in Hibernate – Logback
ログバックをHibernateと統合します。
Hibernate接続プール
Hibernateでデータベース接続プールを構成する方法
-
Configure C3P0 connection pool in Hibernate
C3P0をHibernateと統合します。 -
Configure DBCP connection pool in Hibernate
ApacheDBCPをHibernateと統合します。
休止状態のカスケード
Hibernateカスケードは、相手側の状態を自動的に管理するために使用されます。
-
Cascade example (save, update, delete and delete-orphan)
孤立の保存、更新、削除、削除のカスケード例。 そして、削除と孤児の削除の違い。 -
Different between cascade and inverse
多くのHibernate開発者は、カスケードとインバースの違いについて混乱しています。ここで説明します。 -
Cascade – JPA & Hibernate annotation common mistake
初心者または経験豊富なHibernate開発者が犯した非常に簡単な一般的な注釈の間違い– HibernateのJPAカスケード注釈?
Hibernate Query Language(HQL)
データ操作用のHibernate独自の言語は、データベースのSQL言語に非常に似ています。
-
Hibernate Query examples (HQL)
HQL CRUDの例、選択、更新、削除、バッチ挿入(単一挿入のサポートなし)。 -
Hibernate parameter binding examples
「名前付きパラメーター」および「位置パラメーター」メソッドを使用してパラメーターをHQLにバインドします。 -
How to embed Oracle hints in Hibernate query
OracleヒントをHibernateQueryに埋め込んで、Oracleクエリのパフォーマンスを向上させるトリック。
休止状態の基準
Hibernate Criteria APIは、Hibernate Query Language(HQL)の代替です。 これは、多くのオプションの検索条件で常に優れたソリューションです。
-
Hibernate Criteria examples
基準の例–基本的なクエリ、順序付けクエリ、制限クエリ、および結果のページング。
Hibernate Native SQL
いくつかのシナリオでは、Hibernate HQLまたはCriteriaは、必要なことを行うのに十分ではありません。ここでは、ネイティブデータベースSQL言語を直接使用できます。
-
Hibernate native SQL queries examples
HibernateでネイティブSQLを使用する方法を示すガイド。
Hibernate名前付きクエリ
名前付きクエリにより、開発者はHQLをXMLマッピングファイルまたは保守性の目的で注釈に入れることができます。すべてのHQL構文がJavaコード全体に散らばるのは望ましくありません。 :)
-
Hibernate named query examples
XMLファイルおよび注釈での名前付きクエリの操作。
Hibernateトランザクション
Hibernateトランザクションに関連するすべてのもの
-
Hibernate Transaction handle example
Hibernateトランザクションを使用するための簡単な標準例。
Hibernate Advanceテクニック
いくつかのHibernate Advanceテクニック。めったに使用されませんが、実用的なスキル(データフィルターとインターセプター)。
-
Hibernate data filter example – XML and annotation
Hibernateデータフィルターは、データベースから取得するデータをフィルター処理するために使用されます。これは、XMLまたは注釈でデータフィルターを操作するためのガイドです。 -
Hibernate interceptor example – audit log
Hibernateインターセプターは、CRUD操作などのHibernateイベントをインターセプトするために使用されます。これは、Hibernateインターセプターを使用した監査ログ実装の詳細な例です。
休止状態のパフォーマンス
いくつかの調整により、Hibernateの実行が高速になります。
-
dynamic-insert attribute example
動的挿入を使用して、SQLINSERTステートメントに変更されていないプロパティを含めないようにします。 -
dynamic-update attribute example
動的挿入を使用して、SQLUPDATEステートメントに変更されていないプロパティを含めないようにします。 -
Hibernate mutable example (class and collection)
不必要なSQLステートメントの生成を回避するためにmutableキーワードを使用します。 -
Hibernate – fetching strategies examples
Hibernateフェッチ戦略は、Hibernateで生成されたselectステートメントを最適化するために使用されます。これは、Hibernate開発者にとって必須のスキルです。 -
Different between session.get() and session.load()
データベースへの不要なヒットを回避するために、getまたはloadを使用してオブジェクトを取得するタイミングを理解します。
Hibernateを他のフレームワークと統合する
Hibernateを他のフレームワークと統合する例。
-
Struts + Hibernate Integration
HibernateをStrutsフレームワークと統合する例。 -
Struts + Spring + Hibernate Integration
HibernateをStrutsおよびSpringフレームワークと統合する例。 -
Spring + Hibernate Integration
HibernateをSpringフレームワークと統合する例。 -
Spring + Hibernate Integration (Annotation)
HibernateをSpringフレームワーク(アノテーションバージョン)と統合する例。
Hibernate FAQ
よくある質問の回答:
-
How to load hibernate.cfg.xml from different directory
デフォルトでは、Hibernateはプロジェクトクラスパスでhibernate.cfg.xmlを検索します。これは、指定されたフォルダーからロードするためのガイドです。 -
How to add Hibernate XML mapping file (hbm.xml) programmatically
プログラムでhibernate.cfg.xmlをロードするためのヒント -
List of Hibernate database Dialect
さまざまなタイプのデータベースベンダーの方言コレクションのリスト。 -
show_sql , format_sql and use_sql_comments
生成されたSQLステートメントをコンソールに表示するようにHibernateを構成します。 -
How to display hibernate sql parameter values – P6Spy
P6Sqpyサードパーティライブラリを使用してHibernateSQLパラメータ値を表示します。 -
How to display hibernate sql parameter values – Log4j
Log4jを使用してHibernateSQLパラメーター値を表示します。 -
How to call store procedure in Hibernate
ビジネスロジックをストアプロシージャに組み込むことはお勧めしません。気にしないでください。Hibernateでストアプロシージャを呼び出すことは許可されています。 -
How to use database reserved keyword in Hibernate
特別な場合には、Hibernateクラスでdatabaseキーワードを使用する必要がある場合があります(推奨されません)。これを実現するための秘訣は次のとおりです。 -
How to save an image into database
Hibernateを使用して画像をデータベースに保存する方法を示すチュートリアル。
休止状態の一般的なエラー
Hibernate開発の一般的なエラーメッセージのリストを以下に示します。
-
java.lang.ClassNotFoundException : javassist.util.proxy.MethodFilter
-
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
-
java.lang.NoClassDefFoundError: org/apache/commons/collections/SequencedHashMap
-
java.lang.NoClassDefFoundError: net/sf/cglib/proxy/CallbackFilter
-
java.lang.NoClassDefFoundError: com/mchange/v2/c3p0/DataSources
-
java.lang.NoClassDefFoundError: org/hibernate/annotations/common/reflection/ReflectionManager
-
java.lang.NoClassDefFoundError: javax/transaction/Synchronization
-
java.lang.ClassNotFoundException: javax.transaction.TransactionManager
オフトピック
-
Why i choose Hibernate framework for my project?
将来のプロジェクトでHibernateを実装したい理由。