У меня есть класс RMI, который принимает удаленные вызовы от клиентов.Как автоматизировать шаблон Hibernate в удаленных методах RMI
Этот класс использует Hibernate для загрузки объектов и выполнения некоторой бизнес-логики, в основном для чтения.
В настоящее время большинство органов удаленных методов выглядят так:
try {
HibernateUtil.currentSession().beginTransaction();
//load entities, do some business logic...
} catch (HibernateException e) {
logger.error("Hibernate problem...", e);
throw e;
} catch (other exceptions...) {
logger.error("other problem happened...", e);
throw e;
} finally {
HibernateUtil.currentSession().getTransaction().rollback(); //this because it's read-only, we make sure we don't commit anything
HibernateUtil.currentSession().close();
}
Я хотел бы знать, если есть какой-то шаблон, который я мог (относительно легко) реализовать для того, чтобы автоматически иметь это «попытаться открыть session/catch hibernate exception/finally close hibernate resources "без необходимости кодировать его в каждом методе.
Что-то похожее на «открытый сеанс в представлении», который используется в webapps, но который может применяться к вызовам метода remotr RMI вместо HTTP-запросов.
В идеале я хотел бы иметь возможность по-прежнему напрямую обращаться к методам, а не использовать некоторые имена методов передачи рефлексии в виде строк.
Спасибо, я знаю, что Spring может помочь и, вероятно, в конце концов представит его проекту, но на данном этапе это не вариант. –