Управление транзакциями в JavaSE с Hibernate и Guice - PullRequest
0 голосов
/ 13 марта 2011

Я пишу довольно простое приложение, которое использует GWT, Hibernate и Google Guice (с GIN).Я хотел сделать так, чтобы транзакции управлялись с помощью внешнего менеджера (например, с помощью @Transactional в Spring) вместо EntityManager#getTransaction.Я попытался использовать @Transactional, но, похоже, он не работает для меня.

У меня уже введен EntityManager с использованием Providers, например:

/* import stuff */

public class DbProvider implements Provider<EntityManager> {

    public EntityManager get() {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("persdb");
        return emf.createEntityManager();
    }

}

Кажется, что работаетправильно при управлении транзакциями вручную.Я хотел, чтобы транзакции управлялись автоматически, а также для проведения автоматического теста с DBUnit.

Кто-нибудь знает, как это решить?

1 Ответ

6 голосов
/ 13 марта 2011

Имея @Transactional работу в Guice требуется три вещи :

  • Вам нужно guice-persist.jar в вашем классе
  • Объект, для которого вызываются методы @Transactional, должен быть создан Guice
  • Методы не должны быть private
...