Я изучал hibernate и заметил, что на каждом дао вы должны получить сессию, начать транзакцию. Выполнить все операции, а затем зафиксировать
private void createAndStoreEvent(String title, Date theDate) {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
//Perform operations...
session.getTransaction().commit();
}
Затем я заметил в фреймворке под названием Appfuse, которыйиспользует hibernate, имеют методы dao, как показано ниже. Я не вижу begintransaction и commit
public List<Person> findByLastName(String lastName) {
//begintransaction
return getHibernateTemplate().find("from Person where lastName=?", lastName);
//Commit
}
Интересно, как appfuse оборачивает операции dao с помощью session.beginTransaction () и session.getTransaction (). commit ();
Используя эту технику, программисту не нужно беспокоиться о спящем транзакции. Я хочу, чтобы это происходило так, что даже если методы dao переопределяются, код обертки транзакции должен автоматически приходить.Я попытался передать dao классу декоратора и обернуть вызов метода dao в класс декоратора. Но так как методы интерфейса dao будут меняться, идея работала. Как именно мы можем этого добиться.