Maven 2 + Hibernate 3.2 + MySQLの例(注釈)
Note
この記事は古く、一部の情報は最新のHibernate開発では無効になっています。 この最新の–Maven 3 + Hibernate 3.6.3 + Oracle 11g Example (Annotation)チュートリアルを参照する必要があります。
このチュートリアルでは、以前のMaven 2 + Hibernate 3.2 + MySQL Example (XML mapping)を変更し、HibernateXMLマッピングファイルを注釈コードに置き換えます。
この記事で使用したツールとテクノロジー:
-
メーベン2.2.1
-
JDK 1.6.0_13
-
Hibernate 3.2.3.GA
-
MySQL 5.0
1. プロジェクトインフラストラクチャを作成する
Maven + Hibernate (XML mapping file) + MySQL Exampleでプロジェクトインフラストラクチャを作成する
2. JBossリポジトリを追加する
Hibernateアノテーションライブラリをダウンロードするには、pom.xmlのJBossリポジトリが必要です。
JBoss repository http://repository.jboss.com/maven2/
3. Hibernateアノテーションの依存関係を追加する
pom.xmlにhibernate -notおよびhibernate-commons -not依存関係を追加します。
hibernate-annotations hibernate-annotations 3.3.0.GA hibernate-commons-annotations hibernate-commons-annotations 3.0.0.GA
ファイル:pom.xml
4.0.0 com.example.common HibernateExample jar 1.0-SNAPSHOT HibernateExample http://maven.apache.org JBoss repository http://repository.jboss.com/maven2/ mysql mysql-connector-java 5.1.9 hibernate hibernate3 3.2.3.GA hibernate-annotations hibernate-annotations 3.3.0.GA hibernate-commons-annotations hibernate-commons-annotations 3.0.0.GA dom4j dom4j 1.6.1 commons-logging commons-logging 1.1.1 commons-collections commons-collections 3.2.1 cglib cglib 2.2 javax.transaction jta 1.1
4. プロジェクトのクラスパスを更新する
コマンドプロンプトで「mvn eclipse:eclipse」を発行して、依存関係ライブラリをダウンロードし、Eclipseのプロジェクトクラスパスを更新します。
5. HibernateUtil.javaを更新します
「Configuration」の代わりに「AnnotationConfiguration」を使用するように「HibernateUtil」を更新して、Hibernateセッションファクトリを構築します。
以前は「構成」を使用しています-Hibernate XMLマッピングファイル用
return new Configuration().configure().buildSessionFactory();
「AnnotationConfiguration」に変更します–ハイバネーションアノテーションサポート用
return new AnnotationConfiguration().configure().buildSessionFactory();
ファイル:HibernateUtil.java
package com.example.persistence;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory();
private static SessionFactory buildSessionFactory() {
try {
// Create the SessionFactory from hibernate.cfg.xml
return new AnnotationConfiguration().configure().buildSessionFactory();
}
catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
public static void shutdown() {
// Close caches and connection pools
getSessionFactory().close();
}
}
6. モデルクラスの更新
「Stock.java」を更新して、次のように注釈を使用します。
Stock.java
package com.example.common;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
@Entity
@Table(name = "stock", catalog = "example", uniqueConstraints = {
@UniqueConstraint(columnNames = "STOCK_NAME"),
@UniqueConstraint(columnNames = "STOCK_CODE") })
public class Stock implements java.io.Serializable {
private Integer stockId;
private String stockCode;
private String stockName;
public Stock() {
}
public Stock(String stockCode, String stockName) {
this.stockCode = stockCode;
this.stockName = stockName;
}
@Id
@GeneratedValue(strategy = IDENTITY)
@Column(name = "STOCK_ID", unique = true, nullable = false)
public Integer getStockId() {
return this.stockId;
}
public void setStockId(Integer stockId) {
this.stockId = stockId;
}
@Column(name = "STOCK_CODE", unique = true, nullable = false, length = 10)
public String getStockCode() {
return this.stockCode;
}
public void setStockCode(String stockCode) {
this.stockCode = stockCode;
}
@Column(name = "STOCK_NAME", unique = true, nullable = false, length = 20)
public String getStockName() {
return this.stockName;
}
public void setStockName(String stockName) {
this.stockName = stockName;
}
}
7. 既存のHibernate XMLマッピングファイルを削除する
既存のHibernate XMLマッピングファイル「Stock.hbm.xml」を削除します。これはもう必要ありません。
8. Hibernate構成ファイルを更新する
Hibernate構成ファイル– hibernate.cfg.xmlを更新します。
以前は、「マッピングリソース」タグのあるHibernate XMLマッピングファイルがありました。
「マッピングクラス」タグを使用してモデルクラスに変更します
ファイル:hibernate.cfg.xml
false com.mysql.jdbc.Driver password jdbc:mysql://localhost:3306/example root org.hibernate.dialect.MySQLDialect true
9. プロジェクト構造を確認する
いくつかのファイルが変更されたように聞こえるので、それを確認し、次のようにフォルダ構造を確認してください。

10. 実行して出力を見る
App.javaを実行すると、「Stock」テーブルに新しいレコードが挿入されます。 結果は、以前のHibernate XMLマッピングファイルの例と同じになるはずです。
Maven + Hibernate + MySQL ... Hibernate: insert into example.stock (STOCK_CODE, STOCK_NAME) values (?, ?)
完了しました。
ダウンロード–Maven-Hibernate-annotation-MySQL-Example.zip(8KB)