パッケージ jakarta.persistence

インターフェース EntityManager

  • すべてのスーパーインターフェース:
    AutoCloseableSE

    public interface EntityManager
    extends AutoCloseableSE
    永続コンテキストと対話するために使用されるインターフェース。

    EntityManager インスタンスは永続コンテキストに関連付けられています。永続コンテキストは、永続エンティティ ID に対して一意のエンティティインスタンスが存在するエンティティインスタンスのセットです。永続コンテキスト内で、エンティティインスタンスとそのライフサイクルが管理されます。EntityManager API は、永続エンティティインスタンスの作成と削除、プライマリキーによるエンティティの検索、エンティティのクエリに使用されます。

    特定の EntityManager インスタンスによって管理できるエンティティのセットは、永続性ユニットによって定義されます。永続性ユニットは、アプリケーションによって関連またはグループ化され、単一のデータベースへのマッピングで同じ場所に配置する必要があるすべてのクラスのセットを定義します。

    導入:
    1.0
    関連事項:
    Query, TypedQuery, CriteriaQuery, PersistenceContext, StoredProcedureQuery
    • メソッドのサマリー

      すべてのメソッド   インスタンスメソッド   抽象メソッド  
      修飾子と型 メソッド 説明
      voidclear()
      永続コンテキストをクリアして、すべての管理対象エンティティを切り離します。
      voidclose()
      アプリケーション管理エンティティマネージャーを閉じます。
      booleancontains​(ObjectSE entity)
      インスタンスが、現在の永続コンテキストに属する管理対象エンティティインスタンスであるかどうかを確認します。
      <T> EntityGraph<T>createEntityGraph​(ClassSE<T> rootType)
      EntityGraph を動的に作成するために使用できる可変 EntityGraph を返します。
      EntityGraph<?>createEntityGraph​(StringSE graphName)
      名前付き EntityGraph の変更可能なコピーを返します。
      QuerycreateNamedQuery​(StringSE name)
      (Jakarta Persistence クエリ言語またはネイティブ SQL で)名前付きクエリを実行するための Query のインスタンスを作成します。
      <T> TypedQuery<T>createNamedQuery​(StringSE name, ClassSE<T> resultClass)
      query という名前の Jakarta Persistence クエリ言語を実行するための TypedQuery のインスタンスを作成します。
      StoredProcedureQuerycreateNamedStoredProcedureQuery​(StringSE name)
      データベースでストアドプロシージャを実行するための StoredProcedureQuery のインスタンスを作成します。
      QuerycreateNativeQuery​(StringSE sqlString)
      更新または削除など、ネイティブ SQL ステートメントを実行するための Query のインスタンスを作成します。
      QuerycreateNativeQuery​(StringSE sqlString, ClassSE resultClass)
      ネイティブ SQL クエリを実行するための Query のインスタンスを作成します。
      QuerycreateNativeQuery​(StringSE sqlString, StringSE resultSetMapping)
      ネイティブ SQL クエリを実行するための Query のインスタンスを作成します。
      QuerycreateQuery​(CriteriaDelete deleteQuery)
      条件削除クエリを実行するための Query のインスタンスを作成します。
      <T> TypedQuery<T>createQuery​(CriteriaQuery<T> criteriaQuery)
      条件クエリを実行するための TypedQuery のインスタンスを作成します。
      QuerycreateQuery​(CriteriaUpdate updateQuery)
      条件更新クエリを実行するための Query のインスタンスを作成します。
      QuerycreateQuery​(StringSE qlString)
      Jakarta Persistence クエリ言語ステートメントを実行するための Query のインスタンスを作成します。
      <T> TypedQuery<T>createQuery​(StringSE qlString, ClassSE<T> resultClass)
      Jakarta Persistence クエリ言語ステートメントを実行するための TypedQuery のインスタンスを作成します。
      StoredProcedureQuerycreateStoredProcedureQuery​(StringSE procedureName)
      データベースでストアドプロシージャを実行するための StoredProcedureQuery のインスタンスを作成します。
      StoredProcedureQuerycreateStoredProcedureQuery​(StringSE procedureName, ClassSE... resultClasses)
      データベースでストアドプロシージャを実行するための StoredProcedureQuery のインスタンスを作成します。
      StoredProcedureQuerycreateStoredProcedureQuery​(StringSE procedureName, StringSE... resultSetMappings)
      データベースでストアドプロシージャを実行するための StoredProcedureQuery のインスタンスを作成します。
      voiddetach​(ObjectSE entity)
      永続コンテキストから特定のエンティティを削除し、管理対象エンティティを切り離します。
      <T> Tfind​(ClassSE<T> entityClass, ObjectSE primaryKey)
      主キーで検索します。
      <T> Tfind​(ClassSE<T> entityClass, ObjectSE primaryKey, LockModeType lockMode)
      主キーとロックで検索します。
      <T> Tfind​(ClassSE<T> entityClass, ObjectSE primaryKey, LockModeType lockMode, MapSE<StringSE,​ObjectSE> properties)
      指定されたプロパティを使用して、主キーとロックで検索します。
      <T> Tfind​(ClassSE<T> entityClass, ObjectSE primaryKey, MapSE<StringSE,​ObjectSE> properties)
      指定されたプロパティを使用して、主キーで検索します。
      voidflush()
      永続コンテキストを基礎となるデータベースに同期します。
      CriteriaBuildergetCriteriaBuilder()
      CriteriaQuery オブジェクトの作成のために CriteriaBuilder のインスタンスを返します。
      ObjectSEgetDelegate()
      EntityManager の基になるプロバイダーオブジェクトを返します(利用可能な場合)。
      EntityGraph<?>getEntityGraph​(StringSE graphName)
      名前付き EntityGraph を返します。
      <T> ListSE<EntityGraph<? super T>>getEntityGraphs​(ClassSE<T> entityClass)
      指定されたクラス型に対して定義されているすべての名前付き EntityGraphs を返します。
      EntityManagerFactorygetEntityManagerFactory()
      エンティティマネージャーのエンティティマネージャーファクトリを返します。
      FlushModeTypegetFlushMode()
      永続コンテキストに含まれるすべてのオブジェクトに適用されるフラッシュモードを取得します。
      LockModeTypegetLockMode​(ObjectSE entity)
      エンティティインスタンスの現在のロックモードを取得します。
      MetamodelgetMetamodel()
      永続性ユニットのメタモデルにアクセスするための Metamodel インターフェースのインスタンスを返します。
      MapSE<StringSE,​ObjectSE>getProperties()
      エンティティマネージャーに有効なプロパティとヒント、および関連する値を取得します。
      <T> TgetReference​(ClassSE<T> entityClass, ObjectSE primaryKey)
      インスタンスを取得します。インスタンスの状態は遅延フェッチされます。
      EntityTransactiongetTransaction()
      リソースレベルの EntityTransaction オブジェクトを返します。
      booleanisJoinedToTransaction()
      エンティティマネージャーが現在のトランザクションに参加しているかどうかを判断します。
      booleanisOpen()
      エンティティマネージャーが開いているかどうかを確認します。
      voidjoinTransaction()
      エンティティマネージャーに JTA トランザクションがアクティブであることを示し、永続コンテキストをそれに参加させます。
      voidlock​(ObjectSE entity, LockModeType lockMode)
      永続コンテキストに含まれるエンティティインスタンスを、指定されたロックモード型でロックします。
      voidlock​(ObjectSE entity, LockModeType lockMode, MapSE<StringSE,​ObjectSE> properties)
      永続コンテキストに含まれるエンティティインスタンスを、指定されたロックモード型と指定されたプロパティでロックします。
      <T> Tmerge​(T entity)
      指定されたエンティティの状態を現在の永続コンテキストにマージします。
      voidpersist​(ObjectSE entity)
      インスタンスを管理および永続化します。
      voidrefresh​(ObjectSE entity)
      データベースのインスタンスの状態をリフレッシュし、エンティティに加えられた変更を上書きします(存在する場合)。
      voidrefresh​(ObjectSE entity, LockModeType lockMode)
      データベースからインスタンスの状態をリフレッシュし、エンティティに加えられた変更を上書きし、特定のロックモード型に対してロックします。
      voidrefresh​(ObjectSE entity, LockModeType lockMode, MapSE<StringSE,​ObjectSE> properties)
      データベースのインスタンスの状態をリフレッシュし、エンティティに加えられた変更を上書きし、特定のロックモード型および指定されたプロパティでロックします。
      voidrefresh​(ObjectSE entity, MapSE<StringSE,​ObjectSE> properties)
      指定されたプロパティを使用して、データベースのインスタンスの状態をリフレッシュし、エンティティに加えられた変更を上書きします(存在する場合)。
      voidremove​(ObjectSE entity)
      エンティティインスタンスを削除します。
      voidsetFlushMode​(FlushModeType flushMode)
      永続コンテキストに含まれるすべてのオブジェクトに適用されるフラッシュモードを設定します。
      voidsetProperty​(StringSE propertyName, ObjectSE value)
      エンティティマネージャーのプロパティまたはヒントを設定します。
      <T> Tunwrap​(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 インスタンスとそれから取得された QueryTypedQueryStoredProcedureQuery オブジェクトのすべてのメソッドは、getPropertiesgetTransactionisOpen (false を返す)を除いて IllegalStateException をスローします。エンティティマネージャーがアクティブなトランザクションに参加しているときにこのメソッドが呼び出された場合、永続コンテキストはトランザクションが完了するまで管理されたままになります。
        次で指定:
        インターフェース AutoCloseableSEclose 
        例外:
        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