クラス 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メソッドを呼び出します。voidcleanupTransaction(ObjectSE transactionData) デフォルトのbeginTransaction実装はクリーンアップを必要としないため、この実装は何も行いません。getJdbcConnection(EntityManagerEE entityManager, boolean readOnly) この実装は常にnullを返し、JDBC 接続を提供できないことを示します。prepareTransaction(EntityManagerEE entityManager, boolean readOnly, StringSE name) 指定されたセマンティクスを適用して、JPA トランザクションを準備します。voidreleaseJdbcConnection(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。この場合、実際の永続性の問題ではなく、ユーザーコードが原因である可能性があります。) - 関連事項: