JBoss 4.2 - Entity Bean の永続化に MySQL を使用する

失敗

JBoss 4.2 - デフォルトのデータソースを MySQL に変更する』で、データソースに MySQL を使用する方法をレポートしました。 しかし、EJB 3.0 の Entity Bean を使用する場合は、この設定だけでは不足です。

本稿では、Entity Bean で MySQL を使用するために必要な追加作業について記述します。

環境

このレポートは、以下の環境について記述したものです。

JDK JDK 6 Update 1
AP サーバ JBoss Application Server 4.2.0 GA
DBMS MySQL 5.0.41 Community Server
JDBC ドライバ MySQL Connector/J 5.0.5

原因

EJB 3.0 の Entity Bean では、JPA (Java Persistence API) を利用しています。 そのため、JPA の設定ファイルである persistence.xml を作成し、ejb-jar ファイル内の META-INF ディレクトリに配置しなければなりません。

解決策

EJB 3.0 の Entity Bean で、データの保存先を MySQL にする方法を説明します。

[persistence.xml]
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence">
  <!-- 永続化ユニット -->
  <persistence-unit name="database" transaction-type="JTA">
    <!-- データソース (mysql-ds.xml で指定した値を使います) -->
    <jta-data-source>java:/DefaultDS</jta-data-source>
    <!-- エンティティ -->
    <class>sample.SampleEntity</class>
  </persistence-unit>
</persistence>

以上の設定で、Entity Bean の永続化ユニットに MySQL を使用することできます。 より詳細な設定を行いたい場合は、properties 要素に記述します (詳細は補足を参照してください) 。

補足

■ JBoss 用 persistence.xml のプロパティ

property 要素はベンダー固有の設定を、name 属性と value 属性をセットにして指定します。 以下に、JBoss で使用可能なプロパティを示します。

hibernate.hbm2ddl.auto DDL を自動生成するかどうかを指定します。
create … スキーマを再作成します。
create-drop … 起動時にスキーマを作成し、終了時にスキーマを削除します。
update … スキーマを検証し、差異があれば更新します。
validate … スキーマを検証し、差異があればエラーとします。
hibernate.show_sql Hibernate が生成した SQL をログ出力するかどうかを指定します。
true … 出力する
false … 出力しない
hibernate.dialect DB の実装の違いを吸収し、SQL 生成を最適化させるクラスを指定します。
DB ごとのクラス名は Hibernate Reference Documentation の SQL Dialects を参照してください。
hibernate.connection.driver_class JDBC ドライバのクラス名を指定します。
hibernate.connection.url 接続 URL を指定します。
hibernate.connection.username DB 接続に使用するユーザ名を指定します。
hibernate.connection.password DB 接続に使用するパスワードを指定します。

関連レポート

コメント

コメント投稿
(非公開)
     « アイコン一覧 »
(必須)

作成日:2007/05/14
更新日:2007/05/14