クラス DefaultJpaDialect
java.lang.ObjectSE
org.springframework.orm.jpa.DefaultJpaDialect
- 実装されたすべてのインターフェース:
SerializableSE
、PersistenceExceptionTranslator
、JpaDialect
- 既知の直属サブクラス
EclipseLinkJpaDialect
,HibernateJpaDialect
JpaDialect
インターフェースのデフォルト実装。JpaTransactionManager
がデフォルトのダイアレクトとして使用します。beginTransaction(jakarta.persistence.EntityManager, org.springframework.transaction.TransactionDefinition)
で標準の JPA トランザクションを開始し、EntityManagerFactoryUtils
を介して標準の例外変換を実行します。
- 導入:
- 2.0
- 作成者:
- Juergen Hoeller
- 関連事項:
コンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明beginTransaction
(EntityManagerEE entityManager, TransactionDefinition definition) この実装は、標準の JPATransaction.begin
メソッドを呼び出します。void
cleanupTransaction
(ObjectSE transactionData) デフォルトのbeginTransaction
実装はクリーンアップを必要としないため、この実装は何も行いません。getJdbcConnection
(EntityManagerEE entityManager, boolean readOnly) この実装は常にnull
を返し、JDBC 接続を提供できないことを示します。prepareTransaction
(EntityManagerEE entityManager, boolean readOnly, StringSE name) 指定されたセマンティクスを適用して、JPA トランザクションを準備します。void
releaseJdbcConnection
(ConnectionHandle conHandle, EntityManagerEE em) Connection が EntityManager で暗黙的に閉じられると仮定すると、この実装は何もしません。この実装は、EntityManagerFactoryUtils に委譲します。
コンストラクターの詳細
DefaultJpaDialect
public DefaultJpaDialect()
メソッドの詳細
beginTransaction
@Nullable public ObjectSE beginTransaction(EntityManagerEE entityManager, TransactionDefinition definition) throws PersistenceExceptionEE, SQLExceptionSE, TransactionException この実装は、標準の JPATransaction.begin
メソッドを呼び出します。デフォルト以外の分離レベルが設定されている場合、InvalidIsolationLevelException をスローします。標準の JPA トランザクションには保持する状態がないため、この実装はトランザクションデータオブジェクトを返しません。サブクラスはこの実装の戻り値(
null
)を気にする必要がなく、独自のトランザクションデータオブジェクトを自由に返すことができます。- 次で指定:
- インターフェース
JpaDialect
のbeginTransaction
- パラメーター:
entityManager
- JPA トランザクションを開始する EntityManagerdefinition
- セマンティクスを定義する Spring トランザクション定義- 戻り値:
- トランザクションデータがある場合、それを保持する任意のオブジェクト(
JpaDialect.cleanupTransaction(java.lang.Object)
に渡される)。SavepointManager
インターフェースを実装できます。 - 例外:
PersistenceExceptionEE
- JPA メソッドによってスローされた場合SQLExceptionSE
- JDBC メソッドによってスローされた場合TransactionException
- 無効な引数の場合- 関連事項:
prepareTransaction
@Nullable public ObjectSE prepareTransaction(EntityManagerEE entityManager, boolean readOnly, @Nullable StringSE name) throws PersistenceExceptionEE インターフェースからコピーされた説明:JpaDialect
指定されたセマンティクスを適用して、JPA トランザクションを準備します。EntityManager を JTA トランザクションまたはローカルに参加したトランザクションに参加させるときに(たとえば、非同期 EntityManager を同期トランザクションにアップグレードした後)EntityManagerFactoryUtils によって呼び出されます。実装では、読み取り専用フラグをフラッシュモードとして適用できます。その場合は、
cleanupTransaction
でリセットするために、以前のフラッシュモード(およびその他のデータ)を保持するトランザクションデータオブジェクトを返すことができます。実装では、Spring トランザクション名を使用して、特定のデータアクセスのユースケースを最適化することもできます(現在のトランザクション名をユースケース識別子として効果的に使用します)。
- 次で指定:
- インターフェース
JpaDialect
のprepareTransaction
- パラメーター:
entityManager
- JPA トランザクションを開始する EntityManagerreadOnly
- トランザクションが読み取り専用であるかどうかname
- トランザクションの名前 (もしあれば)- 戻り値:
- トランザクションデータがある場合、それを保持する任意のオブジェクト (cleanupTransaction に渡される)
- 例外:
PersistenceExceptionEE
- JPA メソッドによってスローされた場合- 関連事項:
cleanupTransaction
デフォルトのbeginTransaction
実装はクリーンアップを必要としないため、この実装は何も行いません。- 次で指定:
- インターフェース
JpaDialect
のcleanupTransaction
- パラメーター:
transactionData
- トランザクションデータを保持する任意のオブジェクト(存在する場合) (beginTransaction または prepareTransaction によって返される)- 関連事項:
getJdbcConnection
@Nullable public ConnectionHandle getJdbcConnection(EntityManagerEE entityManager, boolean readOnly) throws PersistenceExceptionEE, SQLExceptionSE この実装は常にnull
を返し、JDBC 接続を提供できないことを示します。- 次で指定:
- インターフェース
JpaDialect
のgetJdbcConnection
- パラメーター:
entityManager
- 現在の JPA EntityManagerreadOnly
- 接続が読み取り専用の目的でのみ必要かどうか- 戻り値:
- JDBC コネクションを取得できない場合、
releaseJdbcConnection
またはnull
に渡される、コネクションのハンドル - 例外:
PersistenceExceptionEE
- JPA メソッドによってスローされた場合SQLExceptionSE
- JDBC メソッドによってスローされた場合- 関連事項:
releaseJdbcConnection
public void releaseJdbcConnection(ConnectionHandle conHandle, EntityManagerEE em) throws PersistenceExceptionEE, SQLExceptionSE Connection が EntityManager で暗黙的に閉じられると仮定すると、この実装は何もしません。JPA 実装が、使用後にアプリケーションが閉じることを期待する接続ハンドルを返す場合、ダイアレクト実装は
Connection.close()
(または同様の効果を持つ他のメソッド)をここで呼び出す必要があります。- 次で指定:
- インターフェース
JpaDialect
のreleaseJdbcConnection
- パラメーター:
conHandle
- 解放する JDBC 接続ハンドルem
- 現在の JPA EntityManager- 例外:
PersistenceExceptionEE
- JPA メソッドによってスローされた場合SQLExceptionSE
- JDBC メソッドによってスローされた場合- 関連事項:
translateExceptionIfPossible
この実装は、EntityManagerFactoryUtils に委譲します。- 次で指定:
- インターフェース
PersistenceExceptionTranslator
のtranslateExceptionIfPossible
- パラメーター:
ex
- 変換する RuntimeException- 戻り値:
- 対応する DataAccessException (または、例外を変換できなかった場合は
null
。この場合、実際の永続性の問題ではなく、ユーザーコードが原因である可能性があります。) - 関連事項: