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

Odpovedet emailem