libro
www.tuyano.com
初心者のためのJava Persistence API入門

JPAの基本を覚える (2/7)

作成:2017-10-28 09:07
更新:2017-10-28 09:07

■persistence.xmlの作成

まずは、persistence.xmlを作成しましょう。このファイルは、「main」フォルダ内の「resources」フォルダの中に用意をします。

resources」フォルダの中に、「META-INF」というフォルダを作成して下さい。そしてこの「META-INF」フォルダの中に、「persistence.xml」という名前のファイルを作成します。ここに記述するソースコードは、下のリスト欄のようになります。

persistence.xmlは、以下のような形で記述をします。
<persistence ……略……>

    <persistence-unit ……略……>
        <provider>プロバイダー</provider>
        <class>エンティティクラス</class>
        <properties>
            <property name="プロパティ" value="値" />
            ……必要なだけ記述……
        </properties>
    </persistence-unit>

</persistence>

persistence.xmlは、ルートに<persistence>というタグを用意します。そしてこの中に、<persistence-unit>というタグを作成します。このタグが、パーシスタンス・ユニットになります。この中に必要な情報を色々と記述しておくのです。最低でも以下のタグは用意する必要があります。

<provider>――これはプロバイダーというものを指定するタグです。これは、実際に利用するJPAのエンジン部分のプログラムのことです。JPAは仕様であり、さまざまな実装が存在します。この<provider>タグで、どのJPA実装を利用するかを指定します。

<class>――JPAで利用するエンティティクラスを指定するタグです。

この他に、<properties>というタグが用意されていますね。これは、パーシスタンス・ユニットで必要となる情報をプロパティとしてまとめたものです。具体的には以下のような項目が用意されています。

javax.persistence.jdbc.driver ――データベースのドライバークラスの指定です。H2では、org.h2.Driverクラスを指定します。
javax.persistence.jdbc.url ――アクセス先のデータベースのURLです。ここでは、jdbc:h2:mem:dbと指定をしています。これはH2でメモリ内にdbという名前でデータベースを保存していることを示します。
javax.persistence.jdbc.user ――アクセスするユーザー名です。
javax.persistence.jdbc.password ――これはサンプルにはありませんが、パスワードを指定するものです。

eclipselink.ddl-generation――これは、EclipseLink特有のもので、データベーステーブルの生成に関するものです。"drop-and-create-tables"と指定して、実行時に、それまでのテーブルを削除し新たにテーブルを生成します(ただし、ここではメモリにデータベースを保存しているのでその必要はないんですが……)。ファイルに保存する場合、これを指定することでサーバー起動時にデータベースを初期化できる、ということですね。
eclipselink.ddl-generation.output-mode――出力モードの指定です。databaseと値を指定してありますが、これは出力先がデータベースであることを示すものです。


H2はデータベースサーバーではないので、サーバータイプのようにユーザー名とパスワードでログインする必要がありません。このためパスワードの情報は特に用意していません。MySQLなどを利用する場合は用意する必要がある、ということです。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
    xmlns="http://xmlns.jcp.org/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
        http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">

    <persistence-unit name="mydataentity-persistance" 
            transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <class>com.tuyano.libro.MyDataEntity</class>
        <properties>
            <property name="javax.persistence.jdbc.driver" value="org.h2.Driver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:h2:mem:db" />
            <property name="javax.persistence.jdbc.user" value="sa" />
            <property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
            <property name="eclipselink.ddl-generation.output-mode" value="database" />
        </properties>
    </persistence-unit>
</persistence>
※関連コンテンツ

「初心者のためのJava Persistence API入門」に戻る