我说的是 T5,Java 1.7。
我找不到任何关于在 Tapestry 服务中使用休眠的足够详细的教程。我需要的是创建可以独立处理休眠的 Tapestry 服务。例如,这可能是调度程序服务。该服务将处理数据库中的一些对象及其状态,并在应用程序后台工作。
问题是,如何正确地将它与 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();
}
}
}
它看起来很丑,不像Tapestry的风格。什么是聪明的方法?