public interface EntityManager
EntityManager
のインスタンスは永続化コンテキストに関連付けられています。
永続化コンテキストとは永続的なエンティティの単位に対して一意のエンティティインスタンスが存在するエンティティインスタンスの集合です。
永続化コンテキスト内では、エンティティインスタンスとそのライフサイクルが管理されます。
EntityManager
のAPIは、永続化されたエンティティインスタンスを作成および削除し、主キーでエンティティを見つけ、エンティティを照会するために使用されます。
与えられたEntityManager
のインスタンスによって管理できるエンティティの集合は永続化ユニットによって定義されます。
永続化ユニットはアプリケーションによって関連付けまたはグループ化され、単一のデータベースへのマッピングで配置されなければならないすべてのクラスの集合を定義します。
Query
,
TypedQuery
,
CriteriaQuery
,
PersistenceContext
,
StoredProcedureQuery
修飾子とタイプ | メソッドと説明 |
---|---|
void |
clear()
永続化コンテキストをクリアし、すべての管理下のエンティティをデタッチ状態にします。
|
void |
close()
アプリケーション管理のエンティティマネージャーをクローズします。
|
boolean |
contains(java.lang.Object entity)
インスタンスが現在の永続化コンテキストに所属する管理下のエンティティインスタンスであるかを確認します。
|
<T> EntityGraph<T> |
createEntityGraph(java.lang.Class<T> rootType)
動的にEntityGraphを作成するのに使用できる可変なEntityGraphを返します。
|
EntityGraph<?> |
createEntityGraph(java.lang.String graphName)
名前付きEntityGraphの可変なコピーを返します。
|
Query |
createNamedQuery(java.lang.String name)
名前付き(JPQLまたはネイティブSQLの)クエリーを実行するための
Query インスタンスを作成します。 |
<T> TypedQuery<T> |
createNamedQuery(java.lang.String name,
java.lang.Class<T> resultClass)
JPQLの名前付きクエリーを実行するための
TypedQuery のインスタンスを作成します。 |
StoredProcedureQuery |
createNamedStoredProcedureQuery(java.lang.String name)
ストアドプロシージャーをデータベースで実行するための
StoredProcedureQuery のインスタンスを作成します。 |
Query |
createNativeQuery(java.lang.String sqlString)
ネイティブSQLクエリーを実行するための
Query のインスタンスを作成します。 |
Query |
createNativeQuery(java.lang.String sqlString,
java.lang.Class resultClass)
ネイティブSQLクエリーを実行するための
Query のインスタンスを作成します。 |
Query |
createNativeQuery(java.lang.String sqlString,
java.lang.String resultSetMapping)
ネイティブSQLクエリーを実行するための
Query のインスタンスを作成します。 |
Query |
createQuery(CriteriaDelete deleteQuery)
クライテリア削除クエリーのための
Query のインスタンスを作成します。 |
<T> TypedQuery<T> |
createQuery(CriteriaQuery<T> criteriaQuery)
クライテリアクエリーのための
TypedQuery のインスタンスを作成します。 |
Query |
createQuery(CriteriaUpdate updateQuery)
クライテリア更新クエリーのための
Query のインスタンスを作成します。 |
Query |
createQuery(java.lang.String qlString)
JPQLのステートメントを実行するための
Query のインスタンスを作成します。 |
<T> TypedQuery<T> |
createQuery(java.lang.String qlString,
java.lang.Class<T> resultClass)
JPQLのステートメントを実行するための
TypedQuery のインスタンスを作成します。 |
StoredProcedureQuery |
createStoredProcedureQuery(java.lang.String procedureName)
ストアドプロシージャーをデータベースで実行するための
StoredProcedureQuery のインスタンスを作成します。 |
StoredProcedureQuery |
createStoredProcedureQuery(java.lang.String procedureName,
java.lang.Class... resultClasses)
ストアドプロシージャーをデータベースで実行するための
StoredProcedureQuery のインスタンスを作成します。 |
StoredProcedureQuery |
createStoredProcedureQuery(java.lang.String procedureName,
java.lang.String... resultSetMappings)
ストアドプロシージャーをデータベースで実行するための
StoredProcedureQuery のインスタンスを作成します。 |
void |
detach(java.lang.Object entity)
与えられたエンティティを永続化コンテキストから削除し、マネージドエンティティをデタッチ状態にします。
|
<T> T |
find(java.lang.Class<T> entityClass,
java.lang.Object primaryKey)
主キーで見つけます。
|
<T> T |
find(java.lang.Class<T> entityClass,
java.lang.Object primaryKey,
LockModeType lockMode)
主キーで見つけ、ロックします。
|
<T> T |
find(java.lang.Class<T> entityClass,
java.lang.Object primaryKey,
LockModeType lockMode,
java.util.Map<java.lang.String,java.lang.Object> properties)
指定されたプロパティを使用して主キーで見つけ、ロックします。
|
<T> T |
find(java.lang.Class<T> entityClass,
java.lang.Object primaryKey,
java.util.Map<java.lang.String,java.lang.Object> properties)
指定されたプロパティを使用して主キーで見つけます。
|
void |
flush()
永続化コンテキストを基となるデータベースと同期化させます。
|
CriteriaBuilder |
getCriteriaBuilder()
CriteriaQuery オブジェクトを作るためのCriteriaBuilder のインスタンスを返します。 |
java.lang.Object |
getDelegate()
利用可能な場合に
EntityManager の基となるプロバイダーオブジェクトを返します。 |
EntityGraph<?> |
getEntityGraph(java.lang.String graphName)
名前付きEntityGraphを返します。
|
<T> java.util.List<EntityGraph<? super T>> |
getEntityGraphs(java.lang.Class<T> entityClass)
与えられたクラスの型のために定義されたすべての名前付きEntityGraphを返します。
|
EntityManagerFactory |
getEntityManagerFactory()
このエンティティマネージャーのエンティティマネージャーファクトリーを返します。
|
FlushModeType |
getFlushMode()
永続化コンテキストに含まれるすべてのオブジェクトに適用されるフラッシュモードを取得します。
|
LockModeType |
getLockMode(java.lang.Object entity)
エンティティインスタンスのための現在のロックモードを取得します。
|
Metamodel |
getMetamodel()
永続化ユニットのメタモデルにアクセスするための
Metamodel インターフェースのインスタンスを返します。 |
java.util.Map<java.lang.String,java.lang.Object> |
getProperties()
エンティティマネージャーに有効なプロパティーとヒントと関連する値を取得します。
|
<T> T |
getReference(java.lang.Class<T> entityClass,
java.lang.Object primaryKey)
状態がLAZYフェッチされる可能性のあるインスタンスを取得します。
|
EntityTransaction |
getTransaction()
リソースレベルの
EntityTransaction オブジェクトを返します。 |
boolean |
isJoinedToTransaction()
現在のトランザクションにエンティティマネージャーが参加しているかどうかを返します。
|
boolean |
isOpen()
エンティティマネージャーがオープンしているかどうかを返します。
|
void |
joinTransaction()
エンティティマネージャーにJTAトランザクションがアクティブであることを示し、永続化コンテキストをそれに参加させます。
|
void |
lock(java.lang.Object entity,
LockModeType lockMode)
永続化コンテキストに含まれるエンティティインスタンスを指定されたロックモード型でロックします。
|
void |
lock(java.lang.Object entity,
LockModeType lockMode,
java.util.Map<java.lang.String,java.lang.Object> properties)
永続化コンテキストに含まれるエンティティインスタンスを指定されたロックモード型と指定されたプロパティでロックします。
|
<T> T |
merge(T entity)
与えられたエンティティの状態を現在の永続化コンテキストにマージします。
|
void |
persist(java.lang.Object entity)
インスタンスを管理し、永続化します。
|
void |
refresh(java.lang.Object entity)
データベースからのインスタンスの状態をリフレッシュし、存在する場合はエンティティに加えられた変更を上書きします。
|
void |
refresh(java.lang.Object entity,
LockModeType lockMode)
データベースからのインスタンスの状態をリフレッシュし、存在する場合はエンティティに加えられた変更を上書きし、
指定されたロックモード型でロックします。
|
void |
refresh(java.lang.Object entity,
LockModeType lockMode,
java.util.Map<java.lang.String,java.lang.Object> properties)
データベースからのインスタンスの状態をリフレッシュし、存在する場合はエンティティに加えられた変更を上書きし、
指定されたロックモード型および指定されたプロパティでロックします。
|
void |
refresh(java.lang.Object entity,
java.util.Map<java.lang.String,java.lang.Object> properties)
指定されたプロパティを使用してデータベースからのインスタンスの状態をリフレッシュし、存在する場合はエンティティに加えられた変更を上書きします。
|
void |
remove(java.lang.Object entity)
エンティティのインスタンスを削除します。
|
void |
setFlushMode(FlushModeType flushMode)
永続化コンテキストに含まれるすべてのオブジェクトに適用されるフラッシュモードを設定します。
|
void |
setProperty(java.lang.String propertyName,
java.lang.Object value)
エンティティマネージャーにプロパティもしくはヒントを設定します。
|
<T> T |
unwrap(java.lang.Class<T> cls)
プロバイダ固有のAPIへのアクセスを許可するために指定された型のオブジェクトを返します。
|
void persist(java.lang.Object entity)
entity
- エンティティのインスタンスEntityExistsException
- エンティティがすでに存在する場合(エンティティがすでに存在する場合、
永続化操作が実行された場合にEntityExistsException
が投げられるか、
EntityExistsException
もしくはほかのPersistenceException
がフラッシュもしくはコミット時に投げられる場合があります。)java.lang.IllegalArgumentException
- インスタンスがエンティティでない場合TransactionRequiredException
- トランザクションが存在しないときにPersistenceContextType.TRANSACTION
型のコンテナ管理エンティティマネージャーで呼び出された場合<T> T merge(T entity)
entity
- エンティティのインスタンスjava.lang.IllegalArgumentException
- インスタンスがエンティティでないか、削除されたエンティティの場合TransactionRequiredException
- トランザクションが存在しないときにPersistenceContextType.TRANSACTION
型のコンテナ管理エンティティマネージャーで呼び出された場合void remove(java.lang.Object entity)
entity
- エンティティのインスタンスjava.lang.IllegalArgumentException
- インスタンスがエンティティでないか、デタッチ状態のエンティティの場合TransactionRequiredException
- トランザクションが存在しないときにPersistenceContextType.TRANSACTION
型のコンテナ管理エンティティマネージャーで呼び出された場合<T> T find(java.lang.Class<T> entityClass, java.lang.Object primaryKey)
entityClass
- エンティティクラスprimaryKey
- 主キーjava.lang.IllegalArgumentException
- 最初の引数がエンティティ型を示さない場合、または2番目の引数がそのエンティティの主キーの有効な型でないかnullの場合<T> T find(java.lang.Class<T> entityClass, java.lang.Object primaryKey, java.util.Map<java.lang.String,java.lang.Object> properties)
entityClass
- エンティティクラスprimaryKey
- 主キーproperties
- 標準およびベンダー固有のプロパティとヒントjava.lang.IllegalArgumentException
- 最初の引数がエンティティ型を示さない場合、または2番目の引数がそのエンティティの主キーの有効な型でないかnullの場合<T> T find(java.lang.Class<T> entityClass, java.lang.Object primaryKey, LockModeType lockMode)
エンティティが永続化コンテキスト内で見つかり、悲観ロックモードタイプが指定され、エンティティにバージョン属性が含まれている場合、
永続化プロバイダはデータベースロックを取得する際に楽観バージョンチェックも実行する必要があります。
これらのチェックに失敗するとOptimisticLockException
が投げられます。
ロックモードタイプが悲観ロックで、エンティティインスタンスが見つかってもロックできない場合は、次のようになります。
PessimisticLockException
が投げられます。
LockTimeoutException
が投げられます。
entityClass
- エンティティクラスprimaryKey
- 主キーlockMode
- ロックモードjava.lang.IllegalArgumentException
- 最初の引数がエンティティ型を示さない場合、または2番目の引数がそのエンティティの主キーの有効な型でないかnullの場合TransactionRequiredException
- トランザクションが存在せず、エンティティマネージャーで呼び出された時にNONE
以外のロックモードが指定されている場合、
または現在のトランザクションに結合されていないエンティティマネージャーで呼び出された時にNONE
以外のロックモードが指定されている場合OptimisticLockException
- 楽観バージョンチェックに失敗した場合PessimisticLockException
- 悲観ロックに失敗し、トランザクションがロールバックされた場合LockTimeoutException
- 悲観ロックに失敗し、ステートメントのみがロールバックされた場合PersistenceException
- サポートされていないロック呼び出しが行われた場合<T> T find(java.lang.Class<T> entityClass, java.lang.Object primaryKey, LockModeType lockMode, java.util.Map<java.lang.String,java.lang.Object> properties)
エンティティが永続化コンテキストで見つかり、悲観ロックモードタイプが指定され、エンティティにバージョン属性が含まれている場合、
永続化プロバイダはデータベースロックを取得する際に楽観バージョンチェックも実行する必要があります。
これらのチェックに失敗するとOptimisticLockException
が投げられます。
ロックモードタイプが悲観ロックで、エンティティインスタンスが見つかってもロックできない場合は、次のようになります。
PessimisticLockException
が投げられます。
LockTimeoutException
が投げられます。
ベンダー固有のプロパティまたはヒントが認識されない場合、それは暗黙のうちに無視されます。
ポータブルアプリケーションでは標準のタイムアウトヒントに頼るべきではありません。 使用されているデータベースとプロバイダが使用しているロックメカニズムによっては、ヒントが観測される場合とされない場合があります。
entityClass
- エンティティクラスprimaryKey
- 主キーlockMode
- ロックモードproperties
- 標準およびベンダー固有のプロパティとヒントjava.lang.IllegalArgumentException
- 最初の引数がエンティティ型を示さない場合、または2番目の引数がそのエンティティの主キーの有効な型でないかnullの場合TransactionRequiredException
- トランザクションが存在せず、エンティティマネージャーで呼び出された時にNONE
以外のロックモードが指定されている場合、
または現在のトランザクションに結合されていないエンティティマネージャーで呼び出された時にNONE
以外のロックモードが指定されている場合OptimisticLockException
- 楽観バージョンチェックに失敗した場合PessimisticLockException
- 悲観ロックに失敗し、トランザクションがロールバックされた場合LockTimeoutException
- 悲観ロックに失敗し、ステートメントのみがロールバックされた場合PersistenceException
- サポートされていないロック呼び出しが行われた場合<T> T getReference(java.lang.Class<T> entityClass, java.lang.Object primaryKey)
EntityNotFoundException
がスローされます。
(永続化プロバイダーのランタイムはgetReference
が呼び出されたときにEntityNotFoundException
をスローすることが許可されています。)
アプリケーションはエンティティマネージャーがオープン状態である間にアプリケーションによってアクセスされた場合を除き
デタッチ状態の時にインスタンスの状態が利用可能であることをアプリケーションは期待してはなりません。entityClass
- エンティティクラスprimaryKey
- 主キーjava.lang.IllegalArgumentException
- 最初の引数がエンティティ型を示さない場合、または2番目の引数がそのエンティティの主キーの有効な型でないかnullの場合EntityNotFoundException
- エンティティの状態にアクセスできない場合void flush()
TransactionRequiredException
- トランザクションが存在しない場合、もしくはエンティティマネージャーが現在のトランザクションに参加していない場合PersistenceException
- フラッシュに失敗した場合void setFlushMode(FlushModeType flushMode)
flushMode
- フラッシュモードFlushModeType getFlushMode()
void lock(java.lang.Object entity, LockModeType lockMode)
悲観ロックモードタイプが指定され、エンティティにバージョン属性が含まれている場合、
永続化プロバイダはデータベースロックを取得する際に楽観バージョンチェックも実行する必要があります。
これらのチェックに失敗するとOptimisticLockException
が投げられます。
ロックモードタイプが悲観ロックで、エンティティインスタンスが見つかってもロックできない場合は、次のようになります。
PessimisticLockException
が投げられます。
LockTimeoutException
が投げられます。
entity
- エンティティインスタンスlockMode
- ロックモードjava.lang.IllegalArgumentException
- インスタンスがエンティティでない場合、もしくはデタッチ状態のエンティティの場合TransactionRequiredException
- トランザクションが存在しない場合、もしくはエンティティマネージャーが現在のトランザクションに参加していない場合EntityNotFoundException
- 悲観ロックが行われた時にエンティティがデータベースに存在しない場合OptimisticLockException
- 楽観バージョンチェックに失敗した場合PessimisticLockException
- 悲観ロックに失敗し、トランザクションがロールバックされた場合LockTimeoutException
- 悲観ロックに失敗し、ステートメントのみがロールバックされた場合PersistenceException
- サポートされていないロック呼び出しが行われた場合void lock(java.lang.Object entity, LockModeType lockMode, java.util.Map<java.lang.String,java.lang.Object> properties)
悲観ロックモードタイプが指定され、エンティティにバージョン属性が含まれている場合、
永続化プロバイダはデータベースロックを取得する際に楽観バージョンチェックも実行する必要があります。
これらのチェックに失敗するとOptimisticLockException
が投げられます。
ロックモードタイプが悲観ロックで、エンティティインスタンスが見つかってもロックできない場合は、次のようになります。
PessimisticLockException
が投げられます。
LockTimeoutException
が投げられます。
ベンダー固有のプロパティまたはヒントが認識されない場合、それは暗黙のうちに無視されます。
ポータブルアプリケーションでは標準のタイムアウトヒントに頼るべきではありません。 使用されているデータベースとプロバイダが使用しているロックメカニズムによっては、ヒントが観測される場合とされない場合があります。
entity
- エンティティインスタンスlockMode
- ロックモードproperties
- 標準およびベンダー固有のプロパティとヒントjava.lang.IllegalArgumentException
- インスタンスがエンティティでない場合、もしくはデタッチ状態のエンティティの場合TransactionRequiredException
- トランザクションが存在しない場合、もしくはエンティティマネージャーが現在のトランザクションに参加していない場合EntityNotFoundException
- 悲観ロックが行われた時にエンティティがデータベースに存在しない場合OptimisticLockException
- 楽観バージョンチェックに失敗した場合PessimisticLockException
- 悲観ロックに失敗し、トランザクションがロールバックされた場合LockTimeoutException
- 悲観ロックに失敗し、ステートメントのみがロールバックされた場合PersistenceException
- サポートされていないロック呼び出しが行われた場合void refresh(java.lang.Object entity)
entity
- エンティティインスタンスjava.lang.IllegalArgumentException
- インスタンスがエンティティでない場合、もしくはエンティティが管理下にない場合TransactionRequiredException
- トランザクションが存在しないときにPersistenceContextType.TRANSACTION
型のコンテナ管理エンティティマネージャーで呼び出された場合EntityNotFoundException
- エンティティがデータベースに存在しない場合void refresh(java.lang.Object entity, java.util.Map<java.lang.String,java.lang.Object> properties)
ベンダー固有のプロパティまたはヒントが認識されない場合、それは暗黙のうちに無視されます。
entity
- エンティティインスタンスproperties
- 標準およびベンダー固有のプロパティとヒントjava.lang.IllegalArgumentException
- インスタンスがエンティティでない場合、もしくはエンティティが管理下にない場合TransactionRequiredException
- トランザクションが存在しないときにPersistenceContextType.TRANSACTION
型のコンテナ管理エンティティマネージャーで呼び出された場合EntityNotFoundException
- エンティティがデータベースに存在しない場合void refresh(java.lang.Object entity, LockModeType lockMode)
ロックモードタイプが悲観ロックで、エンティティインスタンスが見つかってもロックできない場合は、次のようになります。
PessimisticLockException
が投げられます。
LockTimeoutException
が投げられます。
entity
- エンティティインスタンスlockMode
- ロックモードjava.lang.IllegalArgumentException
- インスタンスがエンティティでない場合、もしくはエンティティが管理下にない場合TransactionRequiredException
- トランザクションが存在しないときにPersistenceContextType.TRANSACTION
型のコンテナ管理エンティティマネージャーで呼び出された場合、
トランザクションが存在せず拡張エンティティマネージャーで呼び出された時にNONE
以外のロックモードが指定されている場合、
または現在のトランザクションに結合されていない拡張エンティティマネージャーで呼び出された時にNONE
以外のロックモードが指定されている場合EntityNotFoundException
- エンティティがデータベースに存在しない場合PessimisticLockException
- 悲観ロックに失敗し、トランザクションがロールバックされた場合LockTimeoutException
- 悲観ロックに失敗し、ステートメントのみがロールバックされた場合PersistenceException
- サポートされていないロック呼び出しが行われた場合void refresh(java.lang.Object entity, LockModeType lockMode, java.util.Map<java.lang.String,java.lang.Object> properties)
ロックモード型が悲観ロックで、エンティティインスタンスが見つかってもロックできない場合は、次のようになります。
PessimisticLockException
が投げられます。
LockTimeoutException
が投げられます。
ベンダー固有のプロパティまたはヒントが認識されない場合、それは暗黙のうちに無視されます。
ポータブルアプリケーションでは標準のタイムアウトヒントに頼るべきではありません。 使用されているデータベースとプロバイダが使用しているロックメカニズムによっては、ヒントが観測される場合とされない場合があります。
entity
- エンティティインスタンスlockMode
- ロックモードproperties
- 標準およびベンダー固有のプロパティとヒントjava.lang.IllegalArgumentException
- インスタンスがエンティティでない場合、もしくはエンティティが管理下にない場合TransactionRequiredException
- トランザクションが存在しないときにPersistenceContextType.TRANSACTION
型のコンテナ管理エンティティマネージャーで呼び出された場合、
トランザクションが存在せず拡張エンティティマネージャーで呼び出された時にNONE
以外のロックモードが指定されている場合、
または現在のトランザクションに結合されていない拡張エンティティマネージャーで呼び出された時にNONE
以外のロックモードが指定されている場合EntityNotFoundException
- エンティティがデータベースに存在しない場合PessimisticLockException
- 悲観ロックに失敗し、トランザクションがロールバックされた場合LockTimeoutException
- 悲観ロックに失敗し、ステートメントのみがロールバックされた場合PersistenceException
- サポートされていないロック呼び出しが行われた場合void clear()
void detach(java.lang.Object entity)
entity
- エンティティのインスタンスjava.lang.IllegalArgumentException
- インスタンスがエンティティでない場合boolean contains(java.lang.Object entity)
entity
- エンティティのインスタンスjava.lang.IllegalArgumentException
- エンティティでない場合LockModeType getLockMode(java.lang.Object entity)
entity
- エンティティインスタンスTransactionRequiredException
- トランザクションが存在しない場合、
もしくはエンティティマネージャーが現在のトランザクションに参加していない場合java.lang.IllegalArgumentException
- インスタンスが管理下のエンティティでなく、トランザクションがアクティブな場合void setProperty(java.lang.String propertyName, java.lang.Object value)
propertyName
- プロパティもしくはヒントの名前value
- プロパティーもしくはヒントの値java.lang.IllegalArgumentException
- 2つ目の引数が実装に対して不正な場合java.util.Map<java.lang.String,java.lang.Object> getProperties()
Query createQuery(java.lang.String qlString)
Query
のインスタンスを作成します。qlString
- JQPLの文字列java.lang.IllegalArgumentException
- クエリー文字列が不正である場合<T> TypedQuery<T> createQuery(CriteriaQuery<T> criteriaQuery)
TypedQuery
のインスタンスを作成します。criteriaQuery
- クライテリアクエリーオブジェクトjava.lang.IllegalArgumentException
- クライテリアクエリー文字列が不正である場合Query createQuery(CriteriaUpdate updateQuery)
Query
のインスタンスを作成します。updateQuery
- クライテリア更新クエリーオブジェクトjava.lang.IllegalArgumentException
- 更新クエリー文字列が不正である場合Query createQuery(CriteriaDelete deleteQuery)
Query
のインスタンスを作成します。deleteQuery
- クライテリア削除クエリーオブジェクトjava.lang.IllegalArgumentException
- 削除クエリー文字列が不正である場合<T> TypedQuery<T> createQuery(java.lang.String qlString, java.lang.Class<T> resultClass)
TypedQuery
のインスタンスを作成します。
クエリーのSELECTリストは一つの項目のみ含まれなければならず、resultClass
引数で指定された型に割り当て可能である必要があります。qlString
- JQPLの文字列resultClass
- クエリーの結果の型java.lang.IllegalArgumentException
- クエリー文字列が不正である場合、
またはクエリー結果が指定された型に割り当てる事が出来ない場合Query createNamedQuery(java.lang.String name)
Query
インスタンスを作成します。name
- メタデータ内で定義されたクエリーの名前java.lang.IllegalArgumentException
- 指定された名前でクエリーが定義されていない場合、またはクエリー文字列が不正である場合<T> TypedQuery<T> createNamedQuery(java.lang.String name, java.lang.Class<T> resultClass)
TypedQuery
のインスタンスを作成します。
クエリーのSELECTリストは一つの項目のみ含まれなければならず、resultClass
引数で指定された型に割り当て可能である必要があります。name
- メタデータ内で定義されたクエリーの名前resultClass
- クエリーの結果の型java.lang.IllegalArgumentException
- 指定された名前でクエリーが定義されていない場合、またはクエリー文字列が不正である場合、
またはクエリー結果が指定された型に割り当てる事が出来ない場合Query createNativeQuery(java.lang.String sqlString)
Query
のインスタンスを作成します。例えば、更新または削除です。
クエリーが更新もしくは削除用のクエリーでない場合、クエリーの実行により、SQLの結果の各行はObject[]型の結果(またはSELECTリストにカラムが1つのみの場合はObject型の結果)
として戻されます。
カラムの値はSELECTリストに表示される順に戻され、デフォルトのJDBC型のマッピングが適用されます。sqlString
- ネイティブSQLクエリー文字列Query createNativeQuery(java.lang.String sqlString, java.lang.Class resultClass)
Query
のインスタンスを作成します。sqlString
- ネイティブSQLクエリー文字列resultClass
- 結果のインスタンスのクラスQuery createNativeQuery(java.lang.String sqlString, java.lang.String resultSetMapping)
Query
のインスタンスを作成します。sqlString
- ネイティブSQLクエリー文字列resultSetMapping
- 結果セットのマッピングの名前StoredProcedureQuery createNamedStoredProcedureQuery(java.lang.String name)
StoredProcedureQuery
のインスタンスを作成します。
パラメーターはストアドプロシージャーが実行される前に登録される必要があります。
ストアドプロシージャーが一つ以上の結果を返す場合、結果セットはObject[]型のリストとして戻されます。
name
- メタデータ内のストアドプロシージャークエリーに割り当てられている名前java.lang.IllegalArgumentException
- 与えられた名前のストアドプロシージャーが定義されていない場合StoredProcedureQuery createStoredProcedureQuery(java.lang.String procedureName)
StoredProcedureQuery
のインスタンスを作成します。
パラメーターはストアドプロシージャーが実行される前に登録される必要があります。
ストアドプロシージャーが一つ以上の結果を返す場合、結果セットはObject[]型のリストとして戻されます。
procedureName
- データベース内のストアドプロシージャーの名前java.lang.IllegalArgumentException
- 与えられた名前のストアドプロシージャーが存在しない場合(もしくはクエリーの実行が失敗する場合)StoredProcedureQuery createStoredProcedureQuery(java.lang.String procedureName, java.lang.Class... resultClasses)
StoredProcedureQuery
のインスタンスを作成します。
パラメーターはストアドプロシージャーが実行される前に登録される必要があります。
resultClass
引数はストアドプロシージャーの実行で戻される結果セットの順番で指定しなければなりません。
procedureName
- データベース内のストアドプロシージャーの名前resultClasses
- ストアドプロシージャーによって生成された結果セットがマッピングされるクラスjava.lang.IllegalArgumentException
- 与えられた名前のストアドプロシージャーが存在しない場合(もしくはクエリーの実行が失敗する場合)StoredProcedureQuery createStoredProcedureQuery(java.lang.String procedureName, java.lang.String... resultSetMappings)
StoredProcedureQuery
のインスタンスを作成します。
パラメーターはストアドプロシージャーが実行される前に登録される必要があります。
resultSetMapping
引数はストアドプロシージャーの実行で戻される結果セットの順番で指定しなければなりません。
procedureName
- データベース内のストアドプロシージャーの名前resultSetMappings
- ストアドプロシージャーが返す結果セットのマッピングに使用される結果セットマッピングの名前java.lang.IllegalArgumentException
- 与えられた名前のストアドプロシージャーが存在しない場合(もしくはクエリーの実行が失敗する場合)void joinTransaction()
これはJTAのアプリケーション管理のエンティティマネージャーがアクティブなトランザクションのスコープ外で作られたか、
SynchronizationType.UNSYNCHRONIZED
型のエンティティマネージャーであるときに、
現在のJTAトランザクションに参加するときに呼び出される必要があります。
TransactionRequiredException
- トランザクションが存在しない場合boolean isJoinedToTransaction()
<T> T unwrap(java.lang.Class<T> cls)
EntityManager
の実装が指定されたクラスをサポートしていない場合はPersistenceExceptionが投げられます。cls
- 返されるオブジェクトのクラス、これは通常はEntityManager
の基となる実装クラスか、その実装のインターフェースPersistenceException
- プロバイダがこの呼び出しをサポートしていない場合java.lang.Object getDelegate()
EntityManager
の基となるプロバイダーオブジェクトを返します。
このメソッドの結果は実装に依存します。
新しいアプリケーションではunwrap
メソッドを使用するのが望ましいです。void close()
EntityManager
と、
このEntityManager
から得られたすべてのQuery
とTypedQuery
、
StoredProcedureQuery
オブジェクトのすべてのメソッドはgetProperties
と、getTransaction
、
isOpen
(このメソッドはfalseを返します)を除いてIllegalStateException
を投げるようになります。
エンティティマネージャーがアクティブなトランザクションに参加しているときにこのメソッドが呼び出された場合、
トランザクションが完了するまで永続化コンテキストは管理されたままとなります。java.lang.IllegalStateException
- エンティティマネージャーがコンテナ管理の場合boolean isOpen()
EntityTransaction getTransaction()
EntityTransaction
オブジェクトを返します。
EntityTransaction
インスタンスは複数のトランザクションを開始およびコミットするために連続して使用できます。java.lang.IllegalStateException
- JTAのエンティティマネージャーで実行された場合EntityManagerFactory getEntityManagerFactory()
java.lang.IllegalStateException
- エンティティマネージャーがすでにクローズされている場合CriteriaBuilder getCriteriaBuilder()
CriteriaQuery
オブジェクトを作るためのCriteriaBuilder
のインスタンスを返します。java.lang.IllegalStateException
- エンティティマネージャーがすでにクローズされている場合Metamodel getMetamodel()
Metamodel
インターフェースのインスタンスを返します。java.lang.IllegalStateException
- エンティティマネージャーがすでにクローズされている場合<T> EntityGraph<T> createEntityGraph(java.lang.Class<T> rootType)
rootType
- エンティティグラフのクラスEntityGraph<?> createEntityGraph(java.lang.String graphName)
graphName
- エンティティグラフの名前EntityGraph<?> getEntityGraph(java.lang.String graphName)
graphName
- 存在するエンティティグラフの名前java.lang.IllegalArgumentException
- 与えられた名前のEntityGraphが存在しない場合<T> java.util.List<EntityGraph<? super T>> getEntityGraphs(java.lang.Class<T> entityClass)
entityClass
- エンティティクラスjava.lang.IllegalArgumentException
- クラスがエンティティではない場合Translated by @megascus.