私のアプリケーションでは、このサービス内のすべてのメソッドに対してSpringトランザクション境界が宣言されているサービスレイヤがあります。サービス層は、daoと連絡する。私の質問は、DAOメソッドでgetHibernateTemplate.flush()を指定すると、immedieatly dbを更新するか、サービスレイヤメソッドが完了するまで変更をコミットしません。ここで私を助けてください。トランザクションメソッドの明示的なflush()は、データベースを更新するかどうかを指定します。
class someservice{
public void somemethod(){
activitydao.save(domainobj);
}
}
class ActivityDAO extends HibernateDaoSupport{
public void save(domainobj){
getHibernateTemplate().save(domainobj);
getHibernateTemplate().flush(); ----> will it update db immediately ?
}
}
ありがとう、 Ramki。
クイックアンサーに感謝します。私は細かいところで私の問題を少し説明します。 – Ramki
クイックアンサーに感謝します。私は細かいところで私の問題を少し説明します。 私は以下のクラスを持っています 1)キューでリスンするjmsリスナー。 2)10個のスレッドを含むThreadPoolDeligator。 3)Servicelayerオブジェクトを取得してプロセス要求を取得するRequestExecutor(実行可能クラス) 4)サービスクラス5)daoクラス。 jmsはメッセージを受信すると、内部的にRequestExecutor(3)を呼び出して実行するスレッドプールエグゼキュータに移動し、内部的に処理メソッドを使用して処理します。 – Ramki
servcieメソッドは内部的にdbにいくつかの変更を行い、sendは他のシステムが選択したキューにメッセージを戻して処理し、システムに要求を再送信します。この要求は別のスレッドによって実行されます。 – Ramki