Domanda

Sto cercando di integrare insieme JOTM e Hibernate EntityManager alla prova la mia EJB in un ambiente maniera transazionale, ma out-of-contenitore.

Il mio test è simile al seguente:

  1. Avvia JOTM
  2. Mettere UserTransaction di JOTM in JNDI
  3. Creare e configurare StandardXADataSource
  4. Mettere il DataSource in JNDI
  5. Configura hibernate e creare EMF
  6. Crea un EM
  7. Inizia una transazione
  8. Partecipa alla transazione nel EM
  9. Conservare un'entità
  10. Verifica è memorizzato
  11. rollback della transazione
  12. Controllare il database per il conteggio dei record
  13. strappo tutto giù

Ecco quello che il mio codice è simile: http://pastebin.com/m22a9f6b

Ecco l'output di registrazione: http://pastebin.com/m6da9383a

Il test fallisce il passaggio 12 (linea 121).

Come si può vedere, anche se ho roll-backed la transazione, v'è un record nel DB. Sembra che le operazioni in cui non utilizzati a tutti e il record ricevuti attraverso nel db.

Avete delle idee come questo potrebbe essere accadendo e come risolvere il problema?

È stato utile?

Soluzione

ho capito ho bisogno di fornire la mia implementazione di ConnectionProvider che sarebbe tornato XAConnection invece di connessioni semplici. Questo transazioni modo sembrano funzionare

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top