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
>

Reply via email to