JPA パーシスタンス.xml ファイルの初心者ガイド
Java Persistence API (JPA) は、Java におけるオブジェクト/リレーショナルマッピング (ORM) の標準です。JPA を利用する際には、persistence.xml と呼ばれる設定ファイルで JPA の設定やエンティティのマッピングを行う必要があります。
以下、persistence.xmlファイルの例と、一般的な構成パラメータの説明を示します。
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="myPersistenceUnit" transaction-type="RESOURCE_LOCAL">
<!-- 配置数据源 -->
<non-jta-data-source>java:/comp/env/jdbc/myDataSource</non-jta-data-source>
<!-- 配置实体类 -->
<class>com.example.MyEntity</class>
<!-- 配置实体映射文件 -->
<mapping-file>META-INF/myEntityMapping.xml</mapping-file>
<!-- 配置JPA提供程序 -->
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<!-- 配置其他参数 -->
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.show_sql" value="true"/>
</properties>
</persistence-unit>
</persistence>
上記サンプルのpersistence.xmlファイルには「myPersistenceUnit」という永続ユニットが含まれています。以下によくある設定パラメータの説明です。
- persistence-unit要素のname属性は永続化ユニットの名前を指定します。
- transaction-type 属性は、トランザクションの種類を指定し、RESOURCE_LOCAL(ローカルトランザクション)または JTA(グローバルトランザクション)にできます。
- jta-データソース以外のJNDI名を非jta-data-source要素に指定します。
- class要素は、永続化ユニット内で管理するエンティティクラスを示します。
- マッピングファイル要素はエンティティのマッピングファイルの場所を指定します。
- provider要素はJPAプロバイダーのクラス名を指定します。
- properties 要素では、その他の JPA 関連パラメータが指定されます。 property 要素を使用すると、パラメータ名および値を指定できます。
persistence.xml ファイルを使用するには、Java プロジェクトのクラスパスにある META-INF フォルダに置く必要があります。通常、このフォルダは src/main/resources ディレクトリの下にあります。
上記の例ではHibernateをJPAプロバイダとして使用していますが、EclipseLink、OpenJPAなどの他のJPAプロバイダを使用することもできます。ただし、異なるプロバイダを使用すると、設定パラメータの名前や値が異なる可能性があります。
JPAのpersistence.xmlファイルに関する理解と設定に、この初心者ガイドがお役に立てば幸いです!