Hi Esteve, Your question is not easy to understand, as commiting the transaction at the end of all @Transactional annotated methods is what your code is expected to do.
Here's how this @Transactional annotation works: * To start a new transaction, annotate a method with @Transactional: the transaction will start at the call. * To continue the transaction between multiple method calls, annotate all the methods you want to be part of the transaction with @Transactional. * To commit a transaction, make a call on a method which is not annotated. * To rollback, throw an exception (that is not catched in the chain if think). Regards, Charlie 2014-11-13 16:17 GMT+01:00 Esteve Avilés <[email protected]>: > Gerhard, > > Thanks for the reply. I don't understand from your reply and documentation > if I would be able to achieve what I told you in this particular > environment. > > Thanks in advance. > > Esteve > > On Thu, Nov 13, 2014 at 9:26 AM, Gerhard Petracek < > [email protected]> wrote: > > > hi esteve, > > > > if you have one persistence-unit, the interceptor-logic executed for the > > outermost transactional method will #begin and finally #commit/#rollback > > the transaction for the UserTransaction provided by the container (see > > BeanManagedUserTransactionStrategy). > > > > regards, > > gerhard > > > > http://www.irian.at > > > > Your JavaEE powerhouse - > > JavaEE Consulting, Development and > > Courses in English and German > > > > Professional Support for Apache > > MyFaces, DeltaSpike and OpenWebBeans > > > > > > > > 2014-11-12 22:17 GMT+01:00 Esteve Avilés <[email protected]>: > > > > > Hi all, > > > > > > I am using Deltaspike 1.0.3 in a JBoss EAP 6.3 server. We want to use > > > @Transactional annotation to delimiter a transactions. We use JTA and > we > > > have set the beans alternative and created extended entity manager. > > > > > > After setting @Transactional as follows (we first call > > > createAllValsForAPromocioValDescompte): > > > /** > > > * Facade method for createAllValsForAPromocioValDescompte. > > > * It first gets the PromocioValDescompte by its Id and then calls > > > createAllValsForAPromocioValDescompte > > > * @param promocioValDescompteId > > > * @throws BusinessException > > > */ > > > public void createAllValsForAPromocioValDescompte(Long > > > promocioValDescompteId) throws BusinessException { > > > PromocioValDescompte promocio = retrieveById(promocioValDescompteId); > > > if(promocio != null) { > > > updateStatusToInProgress(promocio); > > > this.createAllValsForAPromocioValDescompte(promocio); > > > } else { > > > log.error("PromocioValDescompte no trobat amb Id {} per proces creacio > > > vals", promocioValDescompteId); > > > } > > > } > > > @Transactional(readOnly = false) > > > public void updateStatusToInProgress(PromocioValDescompte > > > promocioValDescompte) throws BusinessException { > > > > > > > > > promocioValDescompte.setEstatProcesGeneracio(EstatPromocioValDescompte.EN_EXECUCIO); > > > promocioValDescompteRepository.saveAndFlush(promocioValDescompte); > > > } > > > /** > > > * Generates all vouchers that will be contained in the > > > EmissioVoucherPredefinit > > > * @param promocioValDescompte > > > * @param emissorVoucher > > > * @param tipusVoucher > > > * @throws BusinessException > > > */ > > > @Transactional > > > public void createAllValsForAPromocioValDescompte(PromocioValDescompte > > > promocioValDescompte) throws BusinessException { > > > > > > log.info("Inici creacio de {} vals per a l'emissio {} i Id {}", > > > promocioValDescompte.getQuantitatDemanada(), > > promocioValDescompte.getNom(), > > > promocioValDescompte.getId()); > > > promocioValDescompte.setQuantitatGenerada(0); > > > ..... > > > > > > We see all methods executed in a unique transaction, and database is > only > > > updated at the end. > > > > > > Do we need to set something else? Before that, in a JEE5 env, we were > > > using @Transactional(TransactionPropagationType.REQUIRED) > > > and @Transactional(TransactionPropagationType.NEVER) to achieve the > same > > > objective. > > > > > > Can anyone help us? > > > > > > Thanks in advance. > > > > > > Regards, > > > > > > -- > > > Esteve Avilés > > > > > > > > > -- > Esteve Avilés > -- Charlie Mordant Full OSGI/EE stack made with Karaf: https://github.com/OsgiliathEnterprise/net.osgiliath.parent
