このドキュメントはS2Hibernate-JPAのバージョンEA2のものです。
S2Hibernate-JPAは以下の特徴を持っています。
- プロジェクトのインポート
JDK5以上が必要です。
あらかじめSeasar2をダウンロードして、EclipseのJavaプロジェクトとしてワークスペースにインポートしてください。
S2Hibernate-JPA-x.x.x.zipを解凍してできたs2hibernate-jpaディレクトリをEclipseのJavaプロジェクトとしてワークスペースにインポートしてください。
- 必要なjarファイル
S2Hibernate-JPAとして必要なjarファイルは、s2hibernate-jpa/libにそろってます。この他にSeasar2のjarファイルが必要です。
Hibernate3はコネクションプールやキャッシュの実装をいろいろ選べるようになっているので、S2Hibernate3で用意していない実装が必要な場合は、Hibernateのサイトよりダウンロードしてください。
- クラスパス
libのjarファイル(hsqldb.jar以外)とresources(j2ee.dicon、s2hibernate-jpa.dicon、log4j.properties、META-INF/persistence.xml)をCLASSPATHにとおせば、S2Hibernate-JPAを実行できます。Eclipseにインポートして使う場合は設定は不要です。
- データベース
簡単に機能を試すことができるように、RDBMSとしてHSQLDBを用意しています。lib/hsqldb.jarはHSQLDBを実行する上では必要ですが、本番では必要ありません。
S2Hibernate3の機能を使用するにあたり、エンティティ、Dao(.java)、diconファイルの作成が必要になります。
Persistence APIの仕様に合わせてエンティティを作成します。
Daoの実装方法
- EntityManager型のフィールドを定義します。
private EntityManager entityManager;
- コンストラクタあるいはプロパティ経由で実装オブジェクトを受け取るように記述します。
public void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}
- 各メソッドでEntityManagerに対する処理を記述します。
public Employee getEmployee(int empno) {
return entityManager.find(Employee.class, 7788);
}
j2ee.diconとs2hibernate-jpa.diconをインクルードします。
クラスパスの通っているディレクトリにresources/META-INFをおきます。META-INFには、次のようなpersistence.xmlを格納します。
<?xml version="1.0" encoding="UTF-8"?>
<persistence>
<persistence-unit name="em" transaction-type="JTA">
<jta-data-source>j2ee.dataSource</jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
<property name="hibernate.jndi.class" value="org.seasar.extension.j2ee.JndiContextFactory"/>
<property name="hibernate.transaction.manager_lookup_class" value="org.seasar.hibernate.jpa.transaction.S2TransactionManagerLookup"/>
<property name="hibernate.show_sql" value="false"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hibernate.use_sql_comments" value="false"/>
</properties>
</persistence-unit>
</persistence>
|