• 検索結果がありません。

永続ユニットのデプロイ

永続ユニットは、以下が含まれる論理グループです。

エンティティーマネージャーファクトリーおよびそのエンティティーマネージャーの設定情 報。

エンティティーマネージャーによって管理されるクラス。

データベースへのクラスのマッピングを指定するメタデータのマッピング。

persistence.xml ファイルには、データソース名を含む永続ユニット設定が含まれています。

/META-<property name="jboss.entity.manager.jndi.name" value="java:/MyEntityManager"/>

<property name="jboss.entity.manager.factory.jndi.name" value="java:/MyEntityManagerFactory"/>

public User createUser(User user) { entityManager.persist(user);

return user;

}

public void updateUser(User user) { entityManager.merge(user);

}

public void deleteUser(String user) { User user = findUser(username);

if (user != null)

entityManager.remove(user);

}

public User findUser(String username) {

CriteriaBuilder builder = entityManager.getCriteriaBuilder();

CriteriaQuery<User> criteria = builder.createQuery(User.class);

Root<User> root = criteria.from(User.class);

TypedQuery<User> query = entityManager .createQuery(criteria.select(root).where(

builder.equal(root.<String> get("username"), username)));

try {

return query.getSingleResult();

}

catch (NoResultException e) { return null;

} }

persistence.xml ファイルには、データソース名を含む永続ユニット設定が含まれています。 /META-INF/ ディレクトリーに persistence.xml ファイルが含まれる JAR ファイルまたはディレクトリーは、

永続ユニットのルートと呼ばれます。

Jakarta EE 環境では、永続ユニットのルートは以下の 1 つである必要があります。

EJB-JAR ファイル

WAR ファイルの /WEB-INF/classes/ ディレクトリー

WAR ファイルの /WEB-INF/lib/ ディレクトリーにある JAR ファイル EAR ライブラリーディレクトリーの JAR ファイル

アプリケーションクライアントの JAR ファイル

:

永続設定ファイル 永続設定ファイル

12.8. 2 次キャッシュ

12.8.1. 2 次キャッシュ

2 次キャッシュとは、アプリケーションセッション外部で永続化された情報を保持するローカルデータ ストアのことです。このキャッシュは永続プロバイダーにより管理され、アプリケーションとデータを 分離することでランタイムを改善します。

JBoss EAP では、以下の目的のためにキャッシュがサポートされます。

Web セッションのクラスタリング

ステートフルセッション Bean のクラスタリング SSO クラスタリング

Hibernate 2 次キャッシュ

<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_2.xsd"

version="2.2">

<persistence-unit name="example" transaction-type="JTA">

<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

<jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>

<mapping-file>ormap.xml</mapping-file>

<jar-file>TestApp.jar</jar-file>

<class>org.test.Test</class>

<shared-cache-mode>NONE</shared-cache-mode>

<validation-mode>CALLBACK</validation-mode>

<properties>

<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>

<property name="hibernate.hbm2ddl.auto" value="create-drop"/>

</properties>

</persistence-unit>

</persistence>

Jakarta Persistence の 2 次キャッシュ

警告 警告

各キャッシュコンテナーは repl および dist キャッシュを定義します。これらの キャッシュは、ユーザーアプリケーションで直接使用しないでください。

12.8.1.1.

デフォルトの デフォルトの

2

次キャッシュプロバイダー 次キャッシュプロバイダー

Infinispan は、JBoss EAP のデフォルトの 2 次キャッシュプロバイダーです。Infinispan は、オプショ ンのスキーマを持つ分散型のインメモリーキーと値のデータストアで、Apache License 2.0 で利用でき ます。

12.8.1.1.1. 永続ユニットでの永続ユニットでの 2 次レベルキャッシュの設定次レベルキャッシュの設定

永続ユニットの shared-cache-mode 要素を使用して 2 次レベルキャッシュを設定できます。

1. 「単純な Jakarta Persistence アプリケーションの作成」を参照して、Red Hat CodeReady Studio で persistence.xml ファイルを作成します。

2. 以下の内容を persistence.xml ファイルに追加します。

SHARED_CACHE_MODE 要素には以下の値を指定できます。

ALL: すべてのエンティティーがキャッシュ可能と見なされます。

NONE: キャッシュ可能と見なされるエンティティーはありません。

ENABLE_SELECTIVE: キャッシュ可能とマークされたエンティティーのみがキャッシュ可

能と見なされます。

DISABLE_SELECTIVE: 明示的にキャッシュ不可能であるとマークされたエンティティー

を除くすべてのエンティティーがキャッシュ可能と見なされます。

UNSPECIFIED: 動作は定義されません。プロバイダー固有のデフォルトは提供されます。

<persistence-unit name="...">

(...) <!-- other configuration -->

<shared-cache-mode>SHARED_CACHE_MODE</shared-cache-mode>

<properties>

<property name="hibernate.cache.use_second_level_cache" value="true" />

<property name="hibernate.cache.use_query_cache" value="true" />

</properties>

</persistence-unit>