インターフェース EntityManager
- すべてのスーパーインターフェース:
- AutoCloseableSE
 - public interface EntityManager extends AutoCloseableSE 永続コンテキストと対話するために使用されるインターフェース。- EntityManagerインスタンスは永続コンテキストに関連付けられています。永続コンテキストは、永続エンティティ ID に対して一意のエンティティインスタンスが存在するエンティティインスタンスのセットです。永続コンテキスト内で、エンティティインスタンスとそのライフサイクルが管理されます。- EntityManagerAPI は、永続エンティティインスタンスの作成と削除、プライマリキーによるエンティティの検索、エンティティのクエリに使用されます。- 特定の - EntityManagerインスタンスによって管理できるエンティティのセットは、永続性ユニットによって定義されます。永続性ユニットは、アプリケーションによって関連またはグループ化され、単一のデータベースへのマッピングで同じ場所に配置する必要があるすべてのクラスのセットを定義します。- 導入:
- 1.0
- 関連事項:
- Query,- TypedQuery,- CriteriaQuery,- PersistenceContext,- StoredProcedureQuery
 
- メソッドのサマリー- すべてのメソッド インスタンスメソッド 抽象メソッド - 修飾子と型 - メソッド - 説明 - void- clear()永続コンテキストをクリアして、すべての管理対象エンティティを切り離します。- void- close()アプリケーション管理エンティティマネージャーを閉じます。- boolean- contains(ObjectSE entity)インスタンスが、現在の永続コンテキストに属する管理対象エンティティインスタンスであるかどうかを確認します。- <T> EntityGraph<T>- createEntityGraph(ClassSE<T> rootType)EntityGraph を動的に作成するために使用できる可変 EntityGraph を返します。- EntityGraph<?>- createEntityGraph(StringSE graphName)名前付き EntityGraph の変更可能なコピーを返します。- Query- createNamedQuery(StringSE name)(Jakarta Persistence クエリ言語またはネイティブ SQL で)名前付きクエリを実行するための- Queryのインスタンスを作成します。- <T> TypedQuery<T>- createNamedQuery(StringSE name, ClassSE<T> resultClass)query という名前の Jakarta Persistence クエリ言語を実行するための- TypedQueryのインスタンスを作成します。- StoredProcedureQuery- createNamedStoredProcedureQuery(StringSE name)データベースでストアドプロシージャを実行するための- StoredProcedureQueryのインスタンスを作成します。- Query- createNativeQuery(StringSE sqlString)更新または削除など、ネイティブ SQL ステートメントを実行するための- Queryのインスタンスを作成します。- Query- createNativeQuery(StringSE sqlString, ClassSE resultClass)ネイティブ SQL クエリを実行するための- Queryのインスタンスを作成します。- Query- createNativeQuery(StringSE sqlString, StringSE resultSetMapping)ネイティブ SQL クエリを実行するための- Queryのインスタンスを作成します。- Query- createQuery(CriteriaDelete deleteQuery)条件削除クエリを実行するための- Queryのインスタンスを作成します。- <T> TypedQuery<T>- createQuery(CriteriaQuery<T> criteriaQuery)条件クエリを実行するための- TypedQueryのインスタンスを作成します。- Query- createQuery(CriteriaUpdate updateQuery)条件更新クエリを実行するための- Queryのインスタンスを作成します。- Query- createQuery(StringSE qlString)Jakarta Persistence クエリ言語ステートメントを実行するための- Queryのインスタンスを作成します。- <T> TypedQuery<T>- createQuery(StringSE qlString, ClassSE<T> resultClass)Jakarta Persistence クエリ言語ステートメントを実行するための- TypedQueryのインスタンスを作成します。- StoredProcedureQuery- createStoredProcedureQuery(StringSE procedureName)データベースでストアドプロシージャを実行するための- StoredProcedureQueryのインスタンスを作成します。- StoredProcedureQuery- createStoredProcedureQuery(StringSE procedureName, ClassSE... resultClasses)データベースでストアドプロシージャを実行するための- StoredProcedureQueryのインスタンスを作成します。- StoredProcedureQuery- createStoredProcedureQuery(StringSE procedureName, StringSE... resultSetMappings)データベースでストアドプロシージャを実行するための- StoredProcedureQueryのインスタンスを作成します。- void- detach(ObjectSE entity)永続コンテキストから特定のエンティティを削除し、管理対象エンティティを切り離します。- <T> T- find(ClassSE<T> entityClass, ObjectSE primaryKey)主キーで検索します。- <T> T- find(ClassSE<T> entityClass, ObjectSE primaryKey, LockModeType lockMode)主キーとロックで検索します。- <T> T- find(ClassSE<T> entityClass, ObjectSE primaryKey, LockModeType lockMode, MapSE<StringSE,ObjectSE> properties)指定されたプロパティを使用して、主キーとロックで検索します。- <T> T- find(ClassSE<T> entityClass, ObjectSE primaryKey, MapSE<StringSE,ObjectSE> properties)指定されたプロパティを使用して、主キーで検索します。- void- flush()永続コンテキストを基礎となるデータベースに同期します。- CriteriaBuilder- getCriteriaBuilder()- CriteriaQueryオブジェクトの作成のために- CriteriaBuilderのインスタンスを返します。- ObjectSE- getDelegate()- EntityManagerの基になるプロバイダーオブジェクトを返します(利用可能な場合)。- EntityGraph<?>- getEntityGraph(StringSE graphName)名前付き EntityGraph を返します。- <T> ListSE<EntityGraph<? super T>>- getEntityGraphs(ClassSE<T> entityClass)指定されたクラス型に対して定義されているすべての名前付き EntityGraphs を返します。- EntityManagerFactory- getEntityManagerFactory()エンティティマネージャーのエンティティマネージャーファクトリを返します。- FlushModeType- getFlushMode()永続コンテキストに含まれるすべてのオブジェクトに適用されるフラッシュモードを取得します。- LockModeType- getLockMode(ObjectSE entity)エンティティインスタンスの現在のロックモードを取得します。- Metamodel- getMetamodel()永続性ユニットのメタモデルにアクセスするための- Metamodelインターフェースのインスタンスを返します。- MapSE<StringSE,ObjectSE>- getProperties()エンティティマネージャーに有効なプロパティとヒント、および関連する値を取得します。- <T> T- getReference(ClassSE<T> entityClass, ObjectSE primaryKey)インスタンスを取得します。インスタンスの状態は遅延フェッチされます。- EntityTransaction- getTransaction()リソースレベルの- EntityTransactionオブジェクトを返します。- boolean- isJoinedToTransaction()エンティティマネージャーが現在のトランザクションに参加しているかどうかを判断します。- boolean- isOpen()エンティティマネージャーが開いているかどうかを確認します。- void- joinTransaction()エンティティマネージャーに JTA トランザクションがアクティブであることを示し、永続コンテキストをそれに参加させます。- void- lock(ObjectSE entity, LockModeType lockMode)永続コンテキストに含まれるエンティティインスタンスを、指定されたロックモード型でロックします。- void- lock(ObjectSE entity, LockModeType lockMode, MapSE<StringSE,ObjectSE> properties)永続コンテキストに含まれるエンティティインスタンスを、指定されたロックモード型と指定されたプロパティでロックします。- <T> T- merge(T entity)指定されたエンティティの状態を現在の永続コンテキストにマージします。- void- persist(ObjectSE entity)インスタンスを管理および永続化します。- void- refresh(ObjectSE entity)データベースのインスタンスの状態をリフレッシュし、エンティティに加えられた変更を上書きします(存在する場合)。- void- refresh(ObjectSE entity, LockModeType lockMode)データベースからインスタンスの状態をリフレッシュし、エンティティに加えられた変更を上書きし、特定のロックモード型に対してロックします。- void- refresh(ObjectSE entity, LockModeType lockMode, MapSE<StringSE,ObjectSE> properties)データベースのインスタンスの状態をリフレッシュし、エンティティに加えられた変更を上書きし、特定のロックモード型および指定されたプロパティでロックします。- void- refresh(ObjectSE entity, MapSE<StringSE,ObjectSE> properties)指定されたプロパティを使用して、データベースのインスタンスの状態をリフレッシュし、エンティティに加えられた変更を上書きします(存在する場合)。- void- remove(ObjectSE entity)エンティティインスタンスを削除します。- void- setFlushMode(FlushModeType flushMode)永続コンテキストに含まれるすべてのオブジェクトに適用されるフラッシュモードを設定します。- void- setProperty(StringSE propertyName, ObjectSE value)エンティティマネージャーのプロパティまたはヒントを設定します。- <T> T- unwrap(ClassSE<T> cls)指定された型のオブジェクトを返し、プロバイダー固有の API へのアクセスを許可します。
 
- メソッドの詳細- persist- void persist(ObjectSE entity) インスタンスを管理および永続化します。- パラメーター:
- entity- エンティティインスタンス
- 例外:
- EntityExistsException- エンティティがすでに存在する場合。(エンティティがすでに存在する場合、永続化操作が呼び出されたときに- EntityExistsExceptionがスローされるか、フラッシュまたはコミット時に- EntityExistsExceptionまたは別の- PersistenceExceptionがスローされます。)
- IllegalArgumentExceptionSE- インスタンスがエンティティではない場合
- TransactionRequiredException- 型- PersistenceContextType.TRANSACTIONのコンテナー管理エンティティマネージャーで呼び出されたときにトランザクションがない場合
 
 - merge- <T> T merge(T entity) 指定されたエンティティの状態を現在の永続コンテキストにマージします。- パラメーター:
- entity- エンティティインスタンス
- 戻り値:
- 状態がマージされたマネージドインスタンス
- 例外:
- IllegalArgumentExceptionSE- インスタンスがエンティティではない場合、または削除されたエンティティである場合
- TransactionRequiredException- 型- PersistenceContextType.TRANSACTIONのコンテナー管理エンティティマネージャーで呼び出されたときにトランザクションがない場合
 
 - remove- void remove(ObjectSE entity) エンティティインスタンスを削除します。- パラメーター:
- entity- エンティティインスタンス
- 例外:
- IllegalArgumentExceptionSE- インスタンスがエンティティではない場合、または分離されたエンティティである場合
- TransactionRequiredException- 型- PersistenceContextType.TRANSACTIONのコンテナー管理エンティティマネージャーで呼び出され、トランザクションがない場合
 
 - find- <T> T find(ClassSE<T> entityClass, ObjectSE primaryKey) 主キーで検索します。指定されたクラスと主キーのエンティティを検索します。エンティティインスタンスが永続コンテキストに含まれている場合、そこから返されます。- パラメーター:
- entityClass- エンティティクラス
- primaryKey- 主キー
- 戻り値:
- 見つかったエンティティインスタンス、またはエンティティが存在しない場合は null
- 例外:
- IllegalArgumentExceptionSE- 最初の引数がエンティティ型を示していないか、2 番目の引数がそのエンティティの主キーの有効な型でないか、null である場合
 
 - find- <T> T find(ClassSE<T> entityClass, ObjectSE primaryKey, MapSE<StringSE,ObjectSE> properties) 指定されたプロパティを使用して、主キーで検索します。指定したクラスのエンティティと主キーを検索します。エンティティインスタンスが永続コンテキストに含まれている場合は、そこから返されます。ベンダー固有のプロパティまたはヒントが認識されない場合、警告なしで無視されます。- パラメーター:
- entityClass- エンティティクラス
- primaryKey- 主キー
- properties- 標準およびベンダー固有のプロパティとヒント
- 戻り値:
- 見つかったエンティティインスタンス、またはエンティティが存在しない場合は null
- 例外:
- IllegalArgumentExceptionSE- 最初の引数がエンティティ型を示していないか、2 番目の引数がそのエンティティの主キーの有効な型でないか、null である場合
- 導入:
- 2.0
 
 - find- <T> T find(ClassSE<T> entityClass, ObjectSE primaryKey, LockModeType lockMode) 主キーで検索してロックします。指定されたクラスと主キーのエンティティを検索し、指定されたロック型に対してロックします。エンティティインスタンスが永続化コンテキストに含まれている場合、そこから返されます。このメソッドの効果は、エンティティでロックメソッドが呼び出された場合と同じです。- エンティティが永続コンテキスト内で見つかり、ロックモード型が悲観的であり、エンティティにバージョン属性がある場合、永続プロバイダーはデータベースロックを取得するときに楽観的なバージョンチェックを実行する必要があります。これらのチェックが失敗すると、 - OptimisticLockExceptionがスローされます。- ロックモード型が悲観的で、エンティティインスタンスが見つかったがロックできない場合: -  データベースロックの失敗によりトランザクションレベルのロールバックが発生した場合、PessimisticLockExceptionがスローされます
- データベースロックの失敗によりステートメントレベルのロールバックのみが発生した場合、LockTimeoutExceptionがスローされます
 - パラメーター:
- entityClass- エンティティクラス
- primaryKey- 主キー
- lockMode- ロックモード
- 戻り値:
- 見つかったエンティティインスタンス、またはエンティティが存在しない場合は null
- 例外:
- IllegalArgumentExceptionSE- 最初の引数がエンティティ型を示していない場合、または 2 番目の引数がそのエンティティの主キーの有効な型ではない場合、または null の場合
- TransactionRequiredException- トランザクションがなく、- NONE以外のロックモードが指定されている場合、または現在のトランザクションに参加していないエンティティマネージャーで呼び出され、- NONE以外のロックモードが指定されている場合
- OptimisticLockException- 楽観的なバージョンチェックが失敗した場合
- PessimisticLockException- 悲観的ロックが失敗し、トランザクションがロールバックされた場合
- LockTimeoutException- 悲観的ロックが失敗し、ステートメントのみがロールバックされる場合
- PersistenceException- サポートされていないロック呼び出しが行われた場合
- 導入:
- 2.0
 
-  データベースロックの失敗によりトランザクションレベルのロールバックが発生した場合、
 - find- <T> T find(ClassSE<T> entityClass, ObjectSE primaryKey, LockModeType lockMode, MapSE<StringSE,ObjectSE> properties) 指定されたプロパティを使用して、主キーとロックで検索します。指定されたクラスと主キーのエンティティを検索し、指定されたロック型に対してロックします。エンティティインスタンスが永続コンテキストに含まれている場合は、そこから返されます。- エンティティが永続コンテキスト内で見つかり、ロックモード型が悲観的であり、エンティティにバージョン属性がある場合、永続プロバイダーはデータベースロックを取得するときに楽観的なバージョンチェックを実行する必要があります。これらのチェックが失敗すると、 - OptimisticLockExceptionがスローされます。- ロックモード型が悲観的で、エンティティインスタンスが見つかったがロックできない場合: -  データベースロックの失敗によりトランザクションレベルのロールバックが発生した場合、PessimisticLockExceptionがスローされます
- データベースロックの失敗によりステートメントレベルのロールバックのみが発生した場合、LockTimeoutExceptionがスローされます
 - ベンダー固有のプロパティまたはヒントが認識されない場合、警告なしで無視されます。 - ポータブルアプリケーションは、標準のタイムアウトヒントに依存するべきではありません。使用中のデータベースとプロバイダーが使用するロックメカニズムに応じて、ヒントが表示される場合と表示されない場合があります。 - パラメーター:
- entityClass- エンティティクラス
- primaryKey- 主キー
- lockMode- ロックモード
- properties- 標準およびベンダー固有のプロパティとヒント
- 戻り値:
- 見つかったエンティティインスタンス、またはエンティティが存在しない場合は null
- 例外:
- IllegalArgumentExceptionSE- 最初の引数がエンティティ型を示していない場合、または 2 番目の引数がそのエンティティの主キーの有効な型ではない場合、または null の場合
- TransactionRequiredException- トランザクションがなく、- NONE以外のロックモードが指定されている場合、または現在のトランザクションに参加していないエンティティマネージャーで呼び出され、- NONE以外のロックモードが指定されている場合
- OptimisticLockException- 楽観的なバージョンチェックが失敗した場合
- PessimisticLockException- 悲観的ロックが失敗し、トランザクションがロールバックされた場合
- LockTimeoutException- 悲観的ロックが失敗し、ステートメントのみがロールバックされる場合
- PersistenceException- サポートされていないロック呼び出しが行われた場合
- 導入:
- 2.0
 
-  データベースロックの失敗によりトランザクションレベルのロールバックが発生した場合、
 - getReference- <T> T getReference(ClassSE<T> entityClass, ObjectSE primaryKey) 状態が遅延フェッチされるインスタンスを取得します。リクエストされたインスタンスがデータベースに存在しない場合、インスタンスの状態に最初にアクセスしたときに- EntityNotFoundExceptionがスローされます。(永続化プロバイダーランタイムは、- getReferenceが呼び出されたときに- EntityNotFoundExceptionをスローすることを許可されています)アプリケーションは、エンティティマネージャーが開いている間にアプリケーションによってアクセスされない限り、デタッチ時にインスタンスの状態が利用可能であることを期待すべきではありません。- パラメーター:
- entityClass- エンティティクラス
- primaryKey- 主キー
- 戻り値:
- 見つかったエンティティインスタンス
- 例外:
- IllegalArgumentExceptionSE- 最初の引数がエンティティ型を示していない場合、または 2 番目の引数がそのエンティティの主キーの有効な型ではない場合、または null の場合
- EntityNotFoundException- エンティティの状態にアクセスできない場合
 
 - flush- void flush() 永続コンテキストを基礎となるデータベースに同期します。- 例外:
- TransactionRequiredException- トランザクションがない場合、またはエンティティマネージャーが現在のトランザクションに参加していない場合
- PersistenceException- フラッシュが失敗した場合
 
 - setFlushMode- void setFlushMode(FlushModeType flushMode) 永続コンテキストに含まれるすべてのオブジェクトに適用されるフラッシュモードを設定します。- パラメーター:
- flushMode- フラッシュモード
 
 - getFlushMode- FlushModeType getFlushMode() 永続コンテキストに含まれるすべてのオブジェクトに適用されるフラッシュモードを取得します。- 戻り値:
- flushMode
 
 - lock- void lock(ObjectSE entity, LockModeType lockMode) 永続コンテキストに含まれるエンティティインスタンスを、指定されたロックモード型でロックします。- 悲観的ロックモード型が指定されていて、エンティティにバージョン属性が含まれている場合、永続性プロバイダーは、データベースロックを取得するときに楽観的バージョンチェックも実行する必要があります。これらのチェックが失敗すると、 - OptimisticLockExceptionがスローされます。- ロックモード型が悲観的で、エンティティインスタンスが見つかったがロックできない場合: -  データベースロックの失敗によりトランザクションレベルのロールバックが発生した場合、PessimisticLockExceptionがスローされます
- データベースロックの失敗によりステートメントレベルのロールバックのみが発生した場合、LockTimeoutExceptionがスローされます
 - パラメーター:
- entity- エンティティインスタンス
- lockMode- ロックモード
- 例外:
- IllegalArgumentExceptionSE- インスタンスがエンティティではない場合、または分離されたエンティティである場合
- TransactionRequiredException- トランザクションがない場合、または現在のトランザクションに参加していないエンティティマネージャーで呼び出された場合
- EntityNotFoundException- 悲観的ロックが実行されたときにエンティティがデータベースに存在しない場合
- OptimisticLockException- 楽観的なバージョンチェックが失敗した場合
- PessimisticLockException- 悲観的ロックが失敗し、トランザクションがロールバックされた場合
- LockTimeoutException- 悲観的ロックが失敗し、ステートメントのみがロールバックされる場合
- PersistenceException- サポートされていないロック呼び出しが行われた場合
 
-  データベースロックの失敗によりトランザクションレベルのロールバックが発生した場合、
 - lock- void lock(ObjectSE entity, LockModeType lockMode, MapSE<StringSE,ObjectSE> properties) 永続コンテキストに含まれるエンティティインスタンスを、指定されたロックモード型と指定されたプロパティでロックします。- 悲観的ロックモード型が指定されていて、エンティティにバージョン属性が含まれている場合、永続性プロバイダーは、データベースロックを取得するときに楽観的バージョンチェックも実行する必要があります。これらのチェックが失敗すると、 - OptimisticLockExceptionがスローされます。- ロックモード型が悲観的で、エンティティインスタンスが見つかったがロックできない場合: -  データベースロックの失敗によりトランザクションレベルのロールバックが発生した場合、PessimisticLockExceptionがスローされます
- データベースロックの失敗によりステートメントレベルのロールバックのみが発生した場合、LockTimeoutExceptionがスローされます
 - ベンダー固有のプロパティまたはヒントが認識されない場合、警告なしで無視されます。 - ポータブルアプリケーションは、標準のタイムアウトヒントに依存するべきではありません。使用中のデータベースとプロバイダーが使用するロックメカニズムに応じて、ヒントが表示される場合と表示されない場合があります。 - パラメーター:
- entity- エンティティインスタンス
- lockMode- ロックモード
- properties- 標準およびベンダー固有のプロパティとヒント
- 例外:
- IllegalArgumentExceptionSE- インスタンスがエンティティではない場合、または分離されたエンティティである場合
- TransactionRequiredException- トランザクションがない場合、または現在のトランザクションに参加していないエンティティマネージャーで呼び出された場合
- EntityNotFoundException- 悲観的ロックが実行されたときにエンティティがデータベースに存在しない場合
- OptimisticLockException- 楽観的なバージョンチェックが失敗した場合
- PessimisticLockException- 悲観的ロックが失敗し、トランザクションがロールバックされた場合
- LockTimeoutException- 悲観的ロックが失敗し、ステートメントのみがロールバックされる場合
- PersistenceException- サポートされていないロック呼び出しが行われた場合
- 導入:
- 2.0
 
-  データベースロックの失敗によりトランザクションレベルのロールバックが発生した場合、
 - refresh- void refresh(ObjectSE entity) データベースのインスタンスの状態をリフレッシュし、エンティティに加えられた変更を上書きします(存在する場合)。- パラメーター:
- entity- エンティティインスタンス
- 例外:
- IllegalArgumentExceptionSE- インスタンスがエンティティではない場合、またはエンティティが管理されていない場合
- TransactionRequiredException- 型- PersistenceContextType.TRANSACTIONのコンテナー管理エンティティマネージャーで呼び出されたときにトランザクションがない場合
- EntityNotFoundException- エンティティがデータベースに存在しない場合
 
 - refresh- void refresh(ObjectSE entity, MapSE<StringSE,ObjectSE> properties) 指定されたプロパティを使用して、データベースのインスタンスの状態をリフレッシュし、エンティティに加えられた変更を上書きします(存在する場合)。- ベンダー固有のプロパティまたはヒントが認識されない場合、警告なしで無視されます。 - パラメーター:
- entity- エンティティインスタンス
- properties- 標準およびベンダー固有のプロパティとヒント
- 例外:
- IllegalArgumentExceptionSE- インスタンスがエンティティではない場合、またはエンティティが管理されていない場合
- TransactionRequiredException- 型- PersistenceContextType.TRANSACTIONのコンテナー管理エンティティマネージャーで呼び出されたときにトランザクションがない場合
- EntityNotFoundException- エンティティがデータベースに存在しない場合
- 導入:
- 2.0
 
 - refresh- void refresh(ObjectSE entity, LockModeType lockMode) データベースからインスタンスの状態をリフレッシュし、エンティティに加えられた変更を上書きし、特定のロックモード型に対してロックします。- ロックモード型が悲観的で、エンティティインスタンスが見つかったがロックできない場合: -  データベースロックの失敗によりトランザクションレベルのロールバックが発生した場合、PessimisticLockExceptionがスローされます
- データベースロックの失敗によりステートメントレベルのロールバックのみが発生した場合、LockTimeoutExceptionがスローされます。
 - パラメーター:
- entity- エンティティインスタンス
- lockMode- ロックモード
- 例外:
- IllegalArgumentExceptionSE- インスタンスがエンティティではない場合、またはエンティティが管理されていない場合
- TransactionRequiredException- トランザクションがないときに、型- PersistenceContextType.TRANSACTIONのコンテナー管理エンティティマネージャーで呼び出された場合。トランザクションがなく、- NONE以外のロックモードが指定されているときに、拡張エンティティマネージャーで呼び出された場合。または、現在のトランザクションに参加していない拡張エンティティマネージャーで呼び出され、- NONE以外のロックモードが指定されている場合
- EntityNotFoundException- エンティティがデータベースに存在しない場合
- PessimisticLockException- 悲観的ロックが失敗し、トランザクションがロールバックされた場合
- LockTimeoutException- 悲観的ロックが失敗し、ステートメントのみがロールバックされる場合
- PersistenceException- サポートされていないロック呼び出しが行われた場合
- 導入:
- 2.0
 
-  データベースロックの失敗によりトランザクションレベルのロールバックが発生した場合、
 - refresh- void refresh(ObjectSE entity, LockModeType lockMode, MapSE<StringSE,ObjectSE> properties) データベースのインスタンスの状態をリフレッシュし、エンティティに加えられた変更を上書きし、特定のロックモード型および指定されたプロパティでロックします。- ロックモード型が悲観的で、エンティティインスタンスが見つかったがロックできない場合: -  データベースロックの失敗によりトランザクションレベルのロールバックが発生した場合、PessimisticLockExceptionがスローされます
- データベースロックの失敗によりステートメントレベルのロールバックのみが発生した場合、LockTimeoutExceptionがスローされます
 - ベンダー固有のプロパティまたはヒントが認識されない場合、警告なしで無視されます。 - ポータブルアプリケーションは、標準のタイムアウトヒントに依存するべきではありません。使用中のデータベースとプロバイダーが使用するロックメカニズムに応じて、ヒントが表示される場合と表示されない場合があります。 - パラメーター:
- entity- エンティティインスタンス
- lockMode- ロックモード
- properties- 標準およびベンダー固有のプロパティとヒント
- 例外:
- IllegalArgumentExceptionSE- インスタンスがエンティティではない場合、またはエンティティが管理されていない場合
- TransactionRequiredException- トランザクションがないときに、型- PersistenceContextType.TRANSACTIONのコンテナー管理エンティティマネージャーで呼び出された場合。トランザクションがなく、- NONE以外のロックモードが指定されているときに、拡張エンティティマネージャーで呼び出された場合。または、現在のトランザクションに参加していない拡張エンティティマネージャーで呼び出され、- NONE以外のロックモードが指定されている場合
- EntityNotFoundException- エンティティがデータベースに存在しない場合
- PessimisticLockException- 悲観的ロックが失敗し、トランザクションがロールバックされた場合
- LockTimeoutException- 悲観的ロックが失敗し、ステートメントのみがロールバックされる場合
- PersistenceException- サポートされていないロック呼び出しが行われた場合
- 導入:
- 2.0
 
-  データベースロックの失敗によりトランザクションレベルのロールバックが発生した場合、
 - clear- void clear() 永続化コンテキストをクリアして、すべての管理対象エンティティを切り離します。データベースにフラッシュされていないエンティティに加えられた変更は保持されません。
 - detach- void detach(ObjectSE entity) 指定されたエンティティを永続化コンテキストから削除し、管理対象エンティティを切り離します。エンティティに加えられたフラッシュされていない変更がある場合(エンティティの削除を含む)、データベースに同期されません。以前に切り離されたエンティティを参照していたエンティティは、引き続きそれを参照します。- パラメーター:
- entity- エンティティインスタンス
- 例外:
- IllegalArgumentExceptionSE- インスタンスがエンティティではない場合
- 導入:
- 2.0
 
 - contains- boolean contains(ObjectSE entity) インスタンスが、現在の永続コンテキストに属する管理対象エンティティインスタンスであるかどうかを確認します。- パラメーター:
- entity- エンティティインスタンス
- 戻り値:
- エンティティが永続コンテキストにあるかどうかを示すブール値
- 例外:
- IllegalArgumentExceptionSE- エンティティでない場合
 
 - getLockMode- LockModeType getLockMode(ObjectSE entity) エンティティインスタンスの現在のロックモードを取得します。- パラメーター:
- entity- エンティティインスタンス
- 戻り値:
- ロックモード
- 例外:
- TransactionRequiredException- トランザクションがない場合、またはエンティティマネージャーが現在のトランザクションに参加していない場合
- IllegalArgumentExceptionSE- インスタンスが管理対象エンティティではなく、トランザクションがアクティブな場合
- 導入:
- 2.0
 
 - setProperty- void setProperty(StringSE propertyName, ObjectSE value) エンティティマネージャーのプロパティまたはヒントを設定します。ベンダー固有のプロパティまたはヒントが認識されない場合、警告なしで無視されます。- パラメーター:
- propertyName- プロパティまたはヒントの名前
- value- プロパティまたはヒントの値
- 例外:
- IllegalArgumentExceptionSE- 2 番目の引数が実装に有効でない場合
- 導入:
- 2.0
 
 - getProperties- MapSE<StringSE,ObjectSE> getProperties() エンティティマネージャーに有効なプロパティとヒント、および関連する値を取得します。マップの内容を変更しても、有効な構成は変更されません。- 戻り値:
- エンティティマネージャーに有効なプロパティとヒントのマップ
- 導入:
- 2.0
 
 - createQuery- Query createQuery(StringSE qlString) Jakarta Persistence クエリ言語ステートメントを実行するための- Queryのインスタンスを作成します。- パラメーター:
- qlString- Jakarta Persistence クエリ文字列
- 戻り値:
- 新しいクエリインスタンス
- 例外:
- IllegalArgumentExceptionSE- クエリ文字列が無効であることが判明した場合
 
 - createQuery- <T> TypedQuery<T> createQuery(CriteriaQuery<T> criteriaQuery) 条件クエリを実行するための- TypedQueryのインスタンスを作成します。- パラメーター:
- criteriaQuery- 条件クエリオブジェクト
- 戻り値:
- 新しいクエリインスタンス
- 例外:
- IllegalArgumentExceptionSE- 条件クエリが無効であることが判明した場合
- 導入:
- 2.0
 
 - createQuery- Query createQuery(CriteriaUpdate updateQuery) 条件更新クエリを実行するための- Queryのインスタンスを作成します。- パラメーター:
- updateQuery- 条件更新クエリオブジェクト
- 戻り値:
- 新しいクエリインスタンス
- 例外:
- IllegalArgumentExceptionSE- 更新クエリが無効であることが判明した場合
- 導入:
- 2.1
 
 - createQuery- Query createQuery(CriteriaDelete deleteQuery) 条件削除クエリを実行するための- Queryのインスタンスを作成します。- パラメーター:
- deleteQuery- 条件削除クエリオブジェクト
- 戻り値:
- 新しいクエリインスタンス
- 例外:
- IllegalArgumentExceptionSE- 削除クエリが無効であることが判明した場合
- 導入:
- 2.1
 
 - createQuery- <T> TypedQuery<T> createQuery(StringSE qlString, ClassSE<T> resultClass) Jakarta Persistence クエリ言語ステートメントを実行するための- TypedQueryのインスタンスを作成します。クエリの選択リストには、- resultClass引数で指定された型に割り当て可能なアイテムが 1 つだけ含まれている必要があります。- パラメーター:
- qlString- Jakarta Persistence クエリ文字列
- resultClass- クエリ結果の型
- 戻り値:
- 新しいクエリインスタンス
- 例外:
- IllegalArgumentExceptionSE- クエリ文字列が無効であることが判明した場合、またはクエリ結果が指定された型に割り当て可能でないことが判明した場合
- 導入:
- 2.0
 
 - createNamedQuery- Query createNamedQuery(StringSE name) (Jakarta Persistence クエリ言語またはネイティブ SQL で)名前付きクエリを実行するための- Queryのインスタンスを作成します。- パラメーター:
- name- メタデータで定義されたクエリの名前
- 戻り値:
- 新しいクエリインスタンス
- 例外:
- IllegalArgumentExceptionSE- クエリが指定された名前で定義されていない場合、またはクエリ文字列が無効であることが判明した場合
 
 - createNamedQuery- <T> TypedQuery<T> createNamedQuery(StringSE name, ClassSE<T> resultClass) query という名前の Jakarta Persistence クエリ言語を実行するための- TypedQueryのインスタンスを作成します。クエリの選択リストには、- resultClass引数で指定された型に割り当て可能なアイテムが 1 つだけ含まれている必要があります。- パラメーター:
- name- メタデータで定義されたクエリの名前
- resultClass- クエリ結果の型
- 戻り値:
- 新しいクエリインスタンス
- 例外:
- IllegalArgumentExceptionSE- クエリが指定された名前で定義されていない場合、クエリ文字列が無効であることが判明した場合、クエリ結果が指定された型に割り当て可能でないことが判明した場合
- 導入:
- 2.0
 
 - createNativeQuery- Query createNativeQuery(StringSE sqlString) 更新や削除など、ネイティブ SQL ステートメントを実行するための- Queryのインスタンスを作成します。クエリが更新クエリでも削除クエリでもない場合、クエリを実行すると、SQL 結果の各行が Object[] 型の結果として返されます(選択リストに列が 1 つしかない場合は Object 型の結果))列の値は、選択リストでの出現順に返され、デフォルトの JDBC 型マッピングが適用されます。- パラメーター:
- sqlString- ネイティブ SQL クエリ文字列
- 戻り値:
- 新しいクエリインスタンス
 
 - createNativeQuery- Query createNativeQuery(StringSE sqlString, ClassSE resultClass) ネイティブ SQL クエリを実行するための- Queryのインスタンスを作成します。- パラメーター:
- sqlString- ネイティブ SQL クエリ文字列
- resultClass- 結果のインスタンスのクラス
- 戻り値:
- 新しいクエリインスタンス
 
 - createNativeQuery- Query createNativeQuery(StringSE sqlString, StringSE resultSetMapping) ネイティブ SQL クエリを実行するための- Queryのインスタンスを作成します。- パラメーター:
- sqlString- ネイティブ SQL クエリ文字列
- resultSetMapping- 結果セットマッピングの名前
- 戻り値:
- 新しいクエリインスタンス
 
 - createNamedStoredProcedureQuery- StoredProcedureQuery createNamedStoredProcedureQuery(StringSE name) データベースでストアドプロシージャを実行するための- StoredProcedureQueryのインスタンスを作成します。- ストアドプロシージャを実行する前に、パラメーターを登録する必要があります。 - ストアドプロシージャが 1 つ以上の結果セットを返す場合、結果セットはすべて Object[] 型のリストとして返されます。 - パラメーター:
- name- メタデータでストアドプロシージャクエリに割り当てられた名前
- 戻り値:
- 新しいストアドプロシージャのクエリインスタンス
- 例外:
- IllegalArgumentExceptionSE- クエリが指定された名前で定義されていない場合
- 導入:
- 2.1
 
 - createStoredProcedureQuery- StoredProcedureQuery createStoredProcedureQuery(StringSE procedureName) データベースでストアドプロシージャを実行するための- StoredProcedureQueryのインスタンスを作成します。- ストアドプロシージャを実行する前に、パラメーターを登録する必要があります。 - ストアドプロシージャが 1 つ以上の結果セットを返す場合、結果セットはすべて Object[] 型のリストとして返されます。 - パラメーター:
- procedureName- データベース内のストアドプロシージャの名前
- 戻り値:
- 新しいストアドプロシージャのクエリインスタンス
- 例外:
- IllegalArgumentExceptionSE- 指定された名前のストアドプロシージャが存在しない場合 (またはクエリの実行は失敗します)
- 導入:
- 2.1
 
 - createStoredProcedureQuery- StoredProcedureQuery createStoredProcedureQuery(StringSE procedureName, ClassSE... resultClasses) データベースでストアドプロシージャを実行するための- StoredProcedureQueryのインスタンスを作成します。- ストアドプロシージャを実行する前に、パラメーターを登録する必要があります。 - resultClass引数は、ストアドプロシージャの呼び出しによって結果セットが返される順序で指定する必要があります。- パラメーター:
- procedureName- データベース内のストアドプロシージャの名前
- resultClasses- ストアドプロシージャによって生成された結果セットがマップされるクラス
- 戻り値:
- 新しいストアドプロシージャのクエリインスタンス
- 例外:
- IllegalArgumentExceptionSE- 指定された名前のストアドプロシージャが存在しない場合 (またはクエリの実行は失敗します)
- 導入:
- 2.1
 
 - createStoredProcedureQuery- StoredProcedureQuery createStoredProcedureQuery(StringSE procedureName, StringSE... resultSetMappings) データベースでストアドプロシージャを実行するための- StoredProcedureQueryのインスタンスを作成します。- ストアドプロシージャを実行する前に、パラメーターを登録する必要があります。 - resultSetMapping引数は、ストアドプロシージャの呼び出しによって結果セットが返される順序で指定する必要があります。- パラメーター:
- procedureName- データベース内のストアドプロシージャの名前
- resultSetMappings- ストアドプロシージャによって返される結果セットのマッピングで使用される結果セットマッピングの名前
- 戻り値:
- 新しいストアドプロシージャのクエリインスタンス
- 例外:
- IllegalArgumentExceptionSE- 指定された名前のストアドプロシージャまたは結果セットマッピングが存在しない場合 (またはクエリの実行は失敗します)
 
 - joinTransaction- void joinTransaction() エンティティマネージャーに JTA トランザクションがアクティブであることを示し、永続コンテキストをそれに参加させます。- このメソッドは、アクティブなトランザクションのスコープ外で作成された JTA アプリケーション管理のエンティティマネージャー、または型 - SynchronizationType.UNSYNCHRONIZEDのエンティティマネージャーで呼び出して、現在の JTA トランザクションに関連付ける必要があります。- 例外:
- TransactionRequiredException- トランザクションがない場合
 
 - isJoinedToTransaction- boolean isJoinedToTransaction() エンティティマネージャーが現在のトランザクションに参加しているかどうかを確認します。エンティティマネージャーが現在のトランザクションに参加していない場合、またはアクティブなトランザクションがない場合は、false を返します。- 戻り値:
- boolean
- 導入:
- 2.1
 
 - unwrap- <T> T unwrap(ClassSE<T> cls) 指定された型のオブジェクトを返し、プロバイダー固有の API へのアクセスを許可します。プロバイダーの- EntityManager実装が指定されたクラスをサポートしない場合、- PersistenceExceptionがスローされます。- パラメーター:
- cls- 返されるオブジェクトのクラス。これは通常、基礎となる- EntityManager実装クラスまたはそれが実装するインターフェースのいずれかです。
- 戻り値:
- 指定されたクラスのインスタンス
- 例外:
- PersistenceException- プロバイダーが呼び出しをサポートしていない場合
- 導入:
- 2.0
 
 - getDelegate- ObjectSE getDelegate() - EntityManagerの基になるプロバイダーオブジェクトを返します(利用可能な場合)。このメソッドの結果は実装固有です。- unwrapメソッドは、新しいアプリケーションに適しています。- 戻り値:
- EntityManager の基になるプロバイダーオブジェクト
 
 - close- void close() アプリケーション管理のエンティティマネージャーを閉じます。close メソッドが呼び出された後、- EntityManagerインスタンスとそれから取得された- Query、- TypedQuery、- StoredProcedureQueryオブジェクトのすべてのメソッドは、- getProperties、- getTransaction、- isOpen(false を返す)を除いて- IllegalStateExceptionをスローします。エンティティマネージャーがアクティブなトランザクションに参加しているときにこのメソッドが呼び出された場合、永続コンテキストはトランザクションが完了するまで管理されたままになります。- 次で指定:
-  インターフェース AutoCloseableSEのclose
- 例外:
- IllegalStateExceptionSE- エンティティマネージャーがコンテナー管理の場合
 
 - isOpen- boolean isOpen() エンティティマネージャーが開いているかどうかを確認します。- 戻り値:
- エンティティマネージャーが閉じられるまで true
 
 - getTransaction- EntityTransaction getTransaction() リソースレベルの- EntityTransactionオブジェクトを返します。- EntityTransactionインスタンスを連続して使用して、複数のトランザクションを開始およびコミットできます。- 戻り値:
- EntityTransaction インスタンス
- 例外:
- IllegalStateExceptionSE- JTA エンティティマネージャーで呼び出された場合
 
 - getEntityManagerFactory- EntityManagerFactory getEntityManagerFactory() エンティティマネージャーのエンティティマネージャーファクトリを返します。- 戻り値:
- EntityManagerFactory インスタンス
- 例外:
- IllegalStateExceptionSE- エンティティマネージャーが閉じている場合
- 導入:
- 2.0
 
 - getCriteriaBuilder- CriteriaBuilder getCriteriaBuilder() - CriteriaQueryオブジェクトの作成のために- CriteriaBuilderのインスタンスを返します。- 戻り値:
- CriteriaBuilder インスタンス
- 例外:
- IllegalStateExceptionSE- エンティティマネージャーが閉じている場合
- 導入:
- 2.0
 
 - getMetamodel- Metamodel getMetamodel() 永続性ユニットのメタモデルにアクセスするための- Metamodelインターフェースのインスタンスを返します。- 戻り値:
- メタモデルインスタンス
- 例外:
- IllegalStateExceptionSE- エンティティマネージャーが閉じている場合
- 導入:
- 2.0
 
 - createEntityGraph- <T> EntityGraph<T> createEntityGraph(ClassSE<T> rootType) EntityGraph を動的に作成するために使用できる可変 EntityGraph を返します。- パラメーター:
- rootType- エンティティグラフのクラス
- 戻り値:
- エンティティグラフ
- 導入:
- 2.1
 
 - createEntityGraph- EntityGraph<?> createEntityGraph(StringSE graphName) 指定された EntityGraph の変更可能なコピーを返します。指定された名前のエンティティグラフがない場合は、null が返されます。- パラメーター:
- graphName- エンティティグラフの名前
- 戻り値:
- エンティティグラフ
- 導入:
- 2.1
 
 - getEntityGraph- EntityGraph<?> getEntityGraph(StringSE graphName) 名前付き EntityGraph を返します。返される EntityGraph は不変と見なされます。- パラメーター:
- graphName- 既存のエンティティグラフの名前
- 戻り値:
- 名前付きエンティティグラフ
- 例外:
- IllegalArgumentExceptionSE- 指定された名前の EntityGraph がない場合
- 導入:
- 2.1
 
 - getEntityGraphs- <T> ListSE<EntityGraph<? super T>> getEntityGraphs(ClassSE<T> entityClass) 指定されたクラス型に対して定義されているすべての名前付き EntityGraphs を返します。- パラメーター:
- entityClass- エンティティクラス
- 戻り値:
- エンティティに定義されたすべてのエンティティグラフのリスト
- 例外:
- IllegalArgumentExceptionSE- クラスがエンティティでない場合
- 導入:
- 2.1