Ho iniziato a utilizzare le transazioni a livello di metodo di Guice come descritto here. Ho un messaggio comeGuice @Transactional non avvia una transazione
@Inject
private EntityManager entityManager;
@Transactional
public UserSession createSession(User user, String browser) {
UserSession session = new UserSession(user, browser);
entityManager.persist(session);
}
Dalla breve descrizione ho pensato che dovrebbe essere sufficiente. Ma ottengo un errore perché nessuna transazione è stata avviata. Funziona solo se inizio e me lo commetto da solo.
L'oggetto viene creato da Guice all'avvio dell'applicazione in un inizializzatore. la stessa istanza viene utilizzata per ogni richiesta.
Perché non funziona?
"Né l'oggetto né il metodo sono contrassegnati come final" Non dovrebbe essere "Né la * classe * né il metodo sono contrassegnati come finali"? –
Yup, slip of the mind. Fisso. –