@DeprecatedSE public abstract class HibernateAccessor extends ObjectSE implements InitializingBean, BeanFactoryAware
HibernateTemplate および HibernateInterceptor の基本クラス。SessionFactory やフラッシュ動作などの共通プロパティを定義します。 直接使用するためのものではありません。HibernateTemplate および HibernateInterceptor を参照してください。
HibernateTemplate, HibernateInterceptor, setFlushMode(int)| 修飾子と型 | フィールドと説明 |
|---|---|
static int | FLUSH_ALWAYS 使用すべきではありません。 各クエリステートメントの前にフラッシュする必要はほとんどありません。 |
static int | FLUSH_AUTO 使用すべきではありません。 自動フラッシュは、Hibernate セッションのデフォルトモードです。 |
static int | FLUSH_COMMIT 使用すべきではありません。 コミット時のフラッシュのみは、中間フラッシュが望ましくない作業単位を対象としており、すでに変更されたインスタンスが関係する可能性のある検索操作でも同様です。 |
static int | FLUSH_EAGER 使用すべきではありません。 即時フラッシュにより、トランザクション中であってもデータベースとの即時同期が行われます。 |
static int | FLUSH_NEVER 使用すべきではありません。 読み取り専用の作業単位の場合、フラッシュしないことは良い戦略です。 |
protected Log | logger 使用すべきではありません。 サブクラスで利用可能なロガー |
| コンストラクターと説明 |
|---|
HibernateAccessor() 使用すべきではありません。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | afterPropertiesSet() 使用すべきではありません。 |
protected FlushMode | applyFlushMode(Session session, boolean existingTransaction) 使用すべきではありません。 このアクセサーに指定されたフラッシュモードを、指定されたセッションに適用します。 |
DataAccessException | convertHibernateAccessException(HibernateException ex) 使用すべきではありません。 指定された HibernateException を org.springframework.dao 階層からの適切な例外に変換します。 |
protected DataAccessException | convertJdbcAccessException(JDBCException ex, SQLExceptionTranslator translator) 使用すべきではありません。 指定された SQLExceptionTranslator を使用して、指定された Hibernate JDBCException を org.springframework.dao 階層からの適切な例外に変換します。 |
protected DataAccessException | convertJdbcAccessException(SQLExceptionSE ex) 使用すべきではありません。 指定された SQLException を org.springframework.dao 階層からの適切な例外に変換します。 |
protected void | disableFilters(Session session) 使用すべきではありません。 指定されたセッションで指定されたフィルターを無効にします。 |
protected void | enableFilters(Session session) 使用すべきではありません。 指定されたセッションで指定されたフィルターを有効にします。 |
protected void | flushIfNecessary(Session session, boolean existingTransaction) 使用すべきではありません。 必要に応じて、指定された Hibernate セッションをフラッシュします。 |
protected SQLExceptionTranslator | getDefaultJdbcExceptionTranslator() 使用すべきではありません。 デフォルトの SQLExceptionTranslator を取得し、必要に応じて遅延作成します。 |
Interceptor | getEntityInterceptor() 使用すべきではありません。 現在の Hibernate エンティティインターセプターを返します。存在しない場合は null を返します。 |
StringSE[] | getFilterNames() 使用すべきではありません。 アクティブ化する Hibernate フィルターの名前を返します(ある場合)。 |
int | getFlushMode() 使用すべきではありません。 コールバックコードを実行した後にフラッシュを強制する必要がある場合は返します。 |
SQLExceptionTranslator | getJdbcExceptionTranslator() 使用すべきではありません。 このインスタンスの JDBC 例外トランスレータがあればそれを返します。 |
SessionFactory | getSessionFactory() 使用すべきではありません。 Hibernate セッションの作成に使用する Hibernate SessionFactory を返します。 |
void | setBeanFactory(BeanFactory beanFactory) 使用すべきではありません。 Bean ファクトリは、エンティティインターセプター Bean 名を解決するために必要なだけです。 |
void | setEntityInterceptor(Interceptor entityInterceptor) 使用すべきではありません。 データベースへの書き込みおよびデータベースからの読み取りを行う前に、プロパティ値をインスペクションおよび変更できる Hibernate エンティティインターセプターを設定します。 |
void | setEntityInterceptorBeanName(StringSE entityInterceptorBeanName) 使用すべきではありません。 データベースへの書き込みおよびデータベースからの読み取りを行う前に、プロパティ値をインスペクションおよび変更できる Hibernate エンティティインターセプターの Bean 名を設定します。 |
void | setFilterName(StringSE filter) 使用すべきではありません。 このアクセサーが動作するすべてのセッションでアクティブになる Hibernate フィルターの名前を設定します。 |
void | setFilterNames(StringSE... filterNames) 使用すべきではありません。 このアクセサーが使用するすべてのセッションでアクティブになる Hibernate フィルターの名前を 1 つ以上設定します。 |
void | setFlushMode(int flushMode) 使用すべきではありません。 フラッシュ動作をこのクラスの定数の 1 つに設定します。 |
void | setFlushModeName(StringSE constantName) 使用すべきではありません。 このクラス内のそれぞれの定数の名前でフラッシュ動作を設定します。例: |
void | setJdbcExceptionTranslator(SQLExceptionTranslator jdbcExceptionTranslator) 使用すべきではありません。 このインスタンスの JDBC 例外トランスレータを設定します。 |
void | setSessionFactory(SessionFactory sessionFactory) 使用すべきではありません。 Hibernate セッションの作成に使用する Hibernate SessionFactory を設定します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic static final int FLUSH_NEVER
既存のセッションの場合、FLUSH_NEVER は現在の操作のスコープに対してフラッシュモードを NEVER に変更し、その後以前のフラッシュモードをリセットします。
setFlushMode(int), 定数フィールド値 public static final int FLUSH_AUTO
既存のセッションの場合、FLUSH_AUTO は既存のフラッシュモードに参加し、現在の操作ではそれを変更しません。これは特に、FLUSH_EAGER とは対照的に、この設定では既存のフラッシュモードが決して変更されないことを意味します。
setFlushMode(int), 定数フィールド値 public static final int FLUSH_EAGER
既存のセッションの場合、FLUSH_EAGER は現在の操作のスコープに対してフラッシュモードを AUTO に変更し、最後にフラッシュを発行して、その後以前のフラッシュモードをリセットします。
setFlushMode(int), 定数フィールド値 public static final int FLUSH_COMMIT
既存のセッションの場合、FLUSH_COMMIT は、現在の操作のスコープに対してフラッシュモードを COMMIT に変更し、その後以前のフラッシュモードをリセットします。唯一の例外は、既存のフラッシュモード NEVER で、この設定によって変更されることはありません。
setFlushMode(int), 定数フィールド値 public static final int FLUSH_ALWAYS
既存のセッションの場合、FLUSH_ALWAYS は、現在の操作のスコープに対してフラッシュモードを ALWAYS に変更し、その後、以前のフラッシュモードをリセットします。
setFlushMode(int), 定数フィールド値 protected final Log logger
public void setSessionFactory(SessionFactory sessionFactory)
public SessionFactory getSessionFactory()
public void setEntityInterceptorBeanName(StringSE entityInterceptorBeanName)
セッションの作成時に Bean 名をインターセプターインスタンスに解決できるようにするには、Bean ファクトリを知っている必要があります。通常、プロトタイプインターセプター、つまりセッションごとの新しいインターセプターインスタンスに使用されます。
共有インターセプターインスタンスにも使用できますが、このようなシナリオではインターセプター参照を直接設定することをお勧めします。
entityInterceptorBeanName - Bean ファクトリ内のエンティティインターセプターの名前 setBeanFactory(org.springframework.beans.factory.BeanFactory), setEntityInterceptor(org.hibernate.Interceptor)public void setEntityInterceptor(Interceptor entityInterceptor)
このようなインターセプターは、SessionFactory レベル (LocalSessionFactoryBean) またはセッションレベル (HibernateTemplate、HibernateInterceptor、HibernateTransactionManager) のいずれかに設定できます。繰り返しの設定を避け、トランザクションで一貫した動作を保証するには、LocalSessionFactoryBean または HibernateTransactionManager に設定することをお勧めします。
public Interceptor getEntityInterceptor() throws IllegalStateExceptionSE, BeansException
null を返します。必要に応じて、Bean ファクトリを介してエンティティインターセプター Bean 名を解決します。IllegalStateExceptionSE - Bean 名が指定されているが、Bean ファクトリが設定されていない場合 BeansException - Bean ファクトリによる Bean 名前解決が失敗した場合 setEntityInterceptor(org.hibernate.Interceptor), setEntityInterceptorBeanName(java.lang.String), setBeanFactory(org.springframework.beans.factory.BeanFactory)public void setJdbcExceptionTranslator(SQLExceptionTranslator jdbcExceptionTranslator)
Hibernate JDBCException のあらゆる SQLException 根本原因に適用され、Hibernate のデフォルトの SQLException 変換 (特定のターゲットデータベースの Hibernate のダイアレクトに基づく) をオーバーライドします。
jdbcExceptionTranslator - 例外変換者 SQLExceptionSE, JDBCException, SQLErrorCodeSQLExceptionTranslator, SQLStateSQLExceptionTranslatorpublic SQLExceptionTranslator getJdbcExceptionTranslator()
public void setFlushModeName(StringSE constantName)
constantName - 定数の名前 setFlushMode(int), FLUSH_AUTOpublic void setFlushMode(int flushMode)
public int getFlushMode()
public void setFilterName(StringSE filter)
このフィルターは各操作の開始時に有効になり、操作の終了時に無効になります。これは、新しく開かれたセッションだけでなく、既存のセッション (たとえば、トランザクション内) でも機能します。
public void setFilterNames(StringSE... filterNames)
これらの各フィルターは、各操作の開始時に有効になり、操作の終了時に対応して無効になります。これは、新しく開かれたセッションだけでなく、既存のセッション(トランザクション内など)でも機能します。
public StringSE[] getFilterNames()
public void setBeanFactory(BeanFactory beanFactory)
BeanFactoryAware の setBeanFactory beanFactory - 所有 BeanFactory(非 null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。setEntityInterceptorBeanName(java.lang.String)public void afterPropertiesSet()
InitializingBeanBeanFactoryAware、ApplicationContextAware などを満たした後、包含 BeanFactory によって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
InitializingBean の afterPropertiesSet protected FlushMode applyFlushMode(Session session, boolean existingTransaction)
session - 現在の Hibernate セッション existingTransaction - 既存のトランザクション内で実行する場合 null setFlushMode(int), Session.setFlushMode(org.hibernate.FlushMode)protected void flushIfNecessary(Session session, boolean existingTransaction) throws HibernateException
session - 現在の Hibernate セッション existingTransaction - 既存のトランザクション内で実行する場合 HibernateException - Hibernate フラッシングエラーの場合 public DataAccessException convertHibernateAccessException(HibernateException ex)
org.springframework.dao 階層からの適切な例外に変換します。指定された SQLExceptionTranslator を Hibernate JDBCException に自動的に適用するか、Hibernate のデフォルトの変換に依存します。
ex - 発生した HibernateExceptionSessionFactoryUtils.convertHibernateAccessException(org.hibernate.HibernateException), setJdbcExceptionTranslator(org.springframework.jdbc.support.SQLExceptionTranslator)protected DataAccessException convertJdbcAccessException(JDBCException ex, SQLExceptionTranslator translator)
org.springframework.dao 階層からの適切な例外に変換します。ex - Hibernate JDBCException が発生しました translator - 使用する SQLExceptionTranslatorprotected DataAccessException convertJdbcAccessException(SQLExceptionSE ex)
org.springframework.dao 階層からの適切な例外に変換します。サブクラスでオーバーライドできます。 コールバックコードが Session.connection() を介して直接 JDBC アクセスを実行した場合にのみ、直接 SQLException が発生する可能性があることに注意してください。
ex - SQLException 例外 setJdbcExceptionTranslator(org.springframework.jdbc.support.SQLExceptionTranslator)protected SQLExceptionTranslator getDefaultJdbcExceptionTranslator()
SessionFactory の基盤となる DataSource のデフォルトの SQLErrorCodeSQLExceptionTranslator を作成します。
protected void enableFilters(Session session)
session - 現在の Hibernate セッション setFilterNames(java.lang.String...), Session.enableFilter(String)protected void disableFilters(Session session)
session - 現在の Hibernate セッション setFilterNames(java.lang.String...), Session.disableFilter(String)