Я реализовал небольшое веб-приложение с Spring 3.0, Spring-Webflow 2.3, ZK 5.0.7, Zkspring 3.0 и Hibernate.
Один из потоков показывает панель задач (zk-borderlayout) с панелями на ней, представляющими задачи.Если пользователь добавляет новую задачу, я запускаю новый подпоток с управляемостью потока.Новая задача сохраняется в конце потока.Все работает отлично.
Кроме того, пользователь может перетаскивать панель на панели задач, чтобы изменить статус («не стартед», «выполняется» ...) задачи.Новый статус задачи должен сохраняться в указанном потоке, а не в конце.Я реализовал эту функциональность, вызвав специальный метод обновления DAO (см. Ниже) в слушателе onDrop компонента.Это также хорошо работает.
public void updateNow(Task task) {
EntityManager em = getJpaTemplate().getEntityManagerFactory().createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
em.merge(task);
tx.commit();
}
Я прочитал эту статью об упорстве, управляемом потоком, и спрашиваю себя, является ли это правильным способом сохранения изменений до моего потока.
Есть предложения?