インターフェース EntityManager
- すべてのスーパーインターフェース:
AutoCloseableSE
public interface EntityManager extends AutoCloseableSE
永続コンテキストと対話するために使用されるインターフェース。EntityManager
インスタンスは永続コンテキストに関連付けられています。永続コンテキストは、永続エンティティ ID に対して一意のエンティティインスタンスが存在するエンティティインスタンスのセットです。永続コンテキスト内で、エンティティインスタンスとそのライフサイクルが管理されます。EntityManager
API は、永続エンティティインスタンスの作成と削除、プライマリキーによるエンティティの検索、エンティティのクエリに使用されます。特定の
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