public abstract class HibernateDaoSupport extends DaoSupport
SessionFactory
を設定する必要があり、それに基づいて HibernateTemplate
を getHibernateTemplate()
メソッドを介してサブクラスに提供します。あるいは、SessionFactory、例外トランスレーター、フラッシュモードなどの HibernateTemplate の設定を再利用するために、HibernateTemplate で直接初期化できます。
このクラスは、SessionFactory が渡された場合、独自の HibernateTemplate インスタンスを作成します。その HibernateTemplate の "allowCreate" フラグは、デフォルトで "true" になります。カスタム HibernateTemplate インスタンスは、createHibernateTemplate(org.hibernate.SessionFactory)
をオーバーライドすることで使用できます。
NOTE: Hibernate アクセスコードは、プレーンな Hibernate スタイルでコーディングすることもできます。新しく開始されたプロジェクトでは、代わりに SessionFactory.getCurrentSession()
に基づいて、データアクセスオブジェクトをコーディングする標準の Hibernate スタイルを採用することを検討してください。この HibernateTemplate は、主に Hibernate 3 ベースのデータアクセスコードの移行ヘルパーとして存在し、Hibernate 5.x のバグ修正の恩恵を受けています。
setSessionFactory(org.hibernate.SessionFactory)
, getHibernateTemplate()
, HibernateTemplate
logger
コンストラクターと説明 |
---|
HibernateDaoSupport() |
修飾子と型 | メソッドと説明 |
---|---|
protected void | checkDaoConfig() 抽象サブクラスは、設定を確認するためにこれをオーバーライドする必要があります。 |
protected HibernateTemplate | createHibernateTemplate(SessionFactory sessionFactory) 指定された SessionFactory の HibernateTemplate を作成します。 |
protected Session | currentSession() 現在の Hibernate セッションを便利に取得します。 |
HibernateTemplate | getHibernateTemplate() SessionFactory で事前に初期化された、または明示的に設定された、この DAO の HibernateTemplate を返します。 |
SessionFactory | getSessionFactory() この DAO が使用する Hibernate SessionFactory を返します。 |
void | setHibernateTemplate(HibernateTemplate hibernateTemplate) SessionFactory を指定する代わりに、この DAO の HibernateTemplate を明示的に設定します。 |
void | setSessionFactory(SessionFactory sessionFactory) この DAO が使用する Hibernate SessionFactory を設定します。 |
afterPropertiesSet, initDao
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public final void setSessionFactory(SessionFactory sessionFactory)
protected HibernateTemplate createHibernateTemplate(SessionFactory sessionFactory)
サブクラスでオーバーライドして、異なる構成の HibernateTemplate インスタンス、またはカスタム HibernateTemplate サブクラスを提供できます。
sessionFactory
- HibernateTemplate を作成する Hibernate SessionFactorysetSessionFactory(org.hibernate.SessionFactory)
@Nullable public final SessionFactory getSessionFactory()
public final void setHibernateTemplate(@Nullable HibernateTemplate hibernateTemplate)
@Nullable public final HibernateTemplate getHibernateTemplate()
注: 返される HibernateTemplate は共有インスタンスです。構成をイントロスペクトできますが、構成を変更することはできません(DaoSupport.initDao()
実装内からの場合を除く)。new HibernateTemplate(getSessionFactory())
を介してカスタム HibernateTemplate インスタンスを作成することを検討してください。この場合、結果のインスタンスの設定をカスタマイズできます。
protected final void checkDaoConfig()
DaoSupport
具象サブクラスがこのテンプレートメソッド自体をオーバーライドしない場合、実装者は final
としてマークする必要があります。
DaoSupport
の checkDaoConfig
protected final Session currentSession() throws DataAccessResourceFailureException
DataAccessResourceFailureException
- セッションを作成できなかった場合 SessionFactory.getCurrentSession()