クラス EclipseLinkJpaDialect

java.lang.ObjectSE
org.springframework.orm.jpa.DefaultJpaDialect
org.springframework.orm.jpa.vendor.EclipseLinkJpaDialect
実装されたすべてのインターフェース:
SerializableSEPersistenceExceptionTranslatorJpaDialect

public class EclipseLinkJpaDialect extends DefaultJpaDialect
Eclipse 永続サービス (EclipseLink) の JpaDialect 実装。EclipseLink 3.0/4.0 と互換性があります。

デフォルトでは、このダイアレクトは非読み取り専用トランザクションの初期の JDBC 接続を使用して初期の EclipseLink トランザクションを取得します。これにより、同じトランザクション内で JDBC 操作と JPA 操作を混在させることができ、それらの影響を相互に可視化できます。これが必要ない場合は、"lazyDatabaseTransaction" フラグを true に設定するか、影響を受けるすべてのトランザクションを一貫して読み取り専用として宣言します。Spring 4.1.2 では、これにより早期の JDBC 接続の取得が確実に回避され、EclipseLink が共有キャッシュモードに維持されます。

注: このダイアレクトは、制限付きでカスタム分離レベルをサポートします。一貫した分離レベルの処理は、すべての Spring トランザクション定義で具体的な分離レベルが指定されている場合にのみ保証されます。また、6.0.10 以降では、非読み取り専用および非遅延トランザクションでデフォルトの分離レベルを使用する場合にも保証されます。詳細は "lazyDatabaseTransaction" javadoc を参照してください。

導入:
2.5.2
作成者:
Juergen Hoeller
関連事項:
  • コンストラクターの詳細

    • EclipseLinkJpaDialect

      public EclipseLinkJpaDialect()
  • メソッドの詳細

    • setLazyDatabaseTransaction

      public void setLazyDatabaseTransaction(boolean lazyDatabaseTransaction)
      Spring 管理の EclipseLink トランザクション内でデータベースリソーストランザクションを遅延開始するかどうかを設定します。

      デフォルトでは、読み取り専用トランザクションは遅延して開始されますが、通常の非読み取り専用トランザクションは早期に開始されます。これにより、EclipseLink トランザクション全体で同じ JDBC 接続を再利用できるようになり、同じ DataSource で動作する JDBC アクセスコードとの分離と一貫した可視性が強化されます。

      JDBC レベルでの分離と可視性の重要性が低いと仮定すると、このフラグを "true" に切り替えて、非読み取り専用トランザクションでも遅延データベーストランザクションの開始を強制し、EclipseLink の共有キャッシュへのアクセスを許可し、EclipseLink の接続モード構成に従います。

      注: 遅延データベーストランザクションは、カスタム分離レベルと組み合わせた場合に確実に動作することは保証されません。読み取り専用フラグとこの遅延フラグは注意して使用してください。他のトランザクションがカスタム分離レベルを使用する場合、読み取り専用トランザクションや遅延トランザクションを使用することはまったく推奨されません。そうしないと、読み取り専用または遅延アクセス中にデフォルト以外の分離レベルが使用される可能性があります。これが許容できない場合は、同時トランザクションの可能性があるカスタム分離レベルの隣に読み取り専用と遅延を使用しないでください。

      関連事項:
    • beginTransaction

      クラスからコピーされた説明: DefaultJpaDialect
      この実装は、標準の JPA Transaction.begin メソッドを呼び出します。デフォルト以外の分離レベルが設定されている場合、InvalidIsolationLevelException をスローします。

      標準の JPA トランザクションには保持する状態がないため、この実装はトランザクションデータオブジェクトを返しません。サブクラスはこの実装の戻り値(null)を気にする必要がなく、独自のトランザクションデータオブジェクトを自由に返すことができます。

      次で指定:
      インターフェース JpaDialectbeginTransaction 
      オーバーライド:
      クラス DefaultJpaDialectbeginTransaction 
      パラメーター:
      entityManager - JPA トランザクションを開始する EntityManager
      definition - セマンティクスを定義する Spring トランザクション定義
      戻り値:
      トランザクションデータがある場合、それを保持する任意のオブジェクト(JpaDialect.cleanupTransaction(java.lang.Object) に渡される)。SavepointManager インターフェースを実装できます。
      例外:
      PersistenceExceptionEE - JPA メソッドによってスローされた場合
      SQLExceptionSE - JDBC メソッドによってスローされた場合
      TransactionException - 無効な引数の場合
      関連事項:
    • getJdbcConnection

      public ConnectionHandle getJdbcConnection(EntityManagerEE entityManager, boolean readOnly) throws PersistenceExceptionEE, SQLExceptionSE
      クラスからコピーされた説明: DefaultJpaDialect
      この実装は常に null を返し、JDBC 接続を提供できないことを示します。
      次で指定:
      インターフェース JpaDialectgetJdbcConnection 
      オーバーライド:
      クラス DefaultJpaDialectgetJdbcConnection 
      パラメーター:
      entityManager - 現在の JPA EntityManager
      readOnly - 接続が読み取り専用の目的でのみ必要かどうか
      戻り値:
      JDBC コネクションを取得できない場合、releaseJdbcConnection または null に渡される、コネクションのハンドル
      例外:
      PersistenceExceptionEE - JPA メソッドによってスローされた場合
      SQLExceptionSE - JDBC メソッドによってスローされた場合
      関連事項: