私はT5、Java 1.7について話しています。
Tapestry サービス内での休止状態の使用に関する十分に詳細なチュートリアルが見つかりません。必要なのは、休止状態を個別に処理できるタペストリー サービスを作成することです。これは、たとえば、スケジューラ サービスである可能性があります。このサービスは、DB 内のいくつかのオブジェクトとその状態を処理し、アプリケーションのバックグラウンドで動作します。
問題は、Hibernate とどのように正しくバインドするかです。このサービス内でさらに作業を行うために、Hibernate のどのオブジェクトを注入する必要がありますか?
現在のアプローチは、このサービス内にHibernateSessionSource
オブジェクトを注入し (サービスのコンストラクターを介してそのインスタンスを渡す)、手動でセッションを作成し、トランザクションを開始するなどです。例えば:
public synchronized void deleteJob(long id) {
Session session = hss.create();
JobItem job = (JobItem) session.get(JobItem.class, id);
if (job != null) {
Transaction tx = session.beginTransaction();
try {
session.delete(job);
tx.commit();
} catch (HibernateException e) {
tx.rollback();
} finally {
session.close();
}
}
}
タペストリーのスタイルではなく、非常に醜く見えます。賢いアプローチとは?