Zalezi jak mate rizene transakce, pokud deklarativne pres Spring, tak zapis do DB provedte v novem vlakne. Pripadne muzete zkusit ziskat primo nove JDBC spojeni a transakce si nad timto spojenim zaridit programaticky.
Lukas 2011/7/21 Ivan Polak <ivan.po...@f4s.sk> > Zdravim konferenciu, > > mam dlho trvajuci vypocet, ktory spracovava velky pocet zaznamov a > nakonci zapise vysledky (zapis do DB sa robi po spracovani kazdeho > zaznamu, ale transakcia sa commitne az ked sa skonci cely vypocet). > > pocas priebehu tohoto vypoctu by som potreboval si niekde do DB > poznacit kolko uz zaznamov bolo spracovanych. chcel som to robit > nasledovnou funkciou: > > Session session = > HibernateSessionHelper.getHibernateSession(getEntityManager()); > Transaction transaction = session.beginTransaction(); > String sql = "UPDATE ccc set value = value + 1 where id = 1"; > SQLQuery query = session.createSQLQuery(sql); > query.executeUpdate(); > transaction.commit(); > > pocet sa v DB aktualizuje (aj sa zapise do DB), ale po spracovavani > dalsieho zaznamu pri vykonani ulozenia do DB (DB sa nezapisuje) pride > k nasledovnej chybe: > > org.springframework.dao.InvalidDataAccessApiUsageException: > no transaction is in progress; nested exception is > javax.persistence.TransactionRequiredException: no transaction is in > progress > > neviete, prosim ako spravit takyto zapis do DB mimo aktivnej transakcie. > > dakujem > > Ivan >