Persistence.xml 設定マニュアル
persistence.xmlは、Java Persistence API(JPA)で使われるパーシスタンスユニットの設定ファイルです。
Persistence.xmlでは以下を設定できます。
- Persistence Unit名(name):パーシスタンスユニットを識別するために使用されます。コードでEntityManagerFactoryを取得するためにこの名前を使用できます。
- 永続化プロバイダー:JPA仕様の実装に使用する永続化プロバイダーのクラス名を指定します。例: Hibernate、EclipseLinkなど。
- データソース(jta-data-source、non-jta-data-source):データベースへの接続に使用するデータソースを指定します。Java EE コンテナによるトランザクション管理を行う場合は jta-data-source、JPA 実装の提供するトランザクション管理を行う場合は non-jta-data-source を使用します。
- エンティティクラス(class):永続化する必要があるエンティティクラスを指定します。アノテーションまたはxmlで設定します。
- マッピングファイル(mapping-file):实体クラスとデータベーステーブル間のマッピングをXMLファイルに記述します。
- プロパティ(property):設定するプロパティを指定し、永続化プロバイダーを永続化する。例えば、データベース接続URL、ユーザー名、パスワードなど。
以下にpersistence.xmlファイルを示す。
<?xml version="1.0" encoding="UTF-8"?>
<persistence 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_2.xsd"
version="2.2">
<persistence-unit name="myPersistenceUnit" transaction-type="JTA">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<jta-data-source>java:/myDataSource</jta-data-source>
<class>com.example.entity.User</class>
<mapping-file>META-INF/orm.xml</mapping-file>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/mydb"/>
<property name="javax.persistence.jdbc.user" value="root"/>
<property name="javax.persistence.jdbc.password" value="password"/>
</persistence-unit>
</persistence>
上記の例では、”myPersistenceUnit” という名前のパーシスタンスユニットが構成され、Hibernate がパーシスタンスプロバイダとして使用されています。データソースは JTA 方式で接続されており、エンティティクラスとマッピングファイルが指定されています。また、データベースに接続するための URL、ユーザー名、パスワードなどのプロパティが設定されています。