[Javalist] TransactionAttributeType.REQUIRES_NEW

Zoltán Bernát bernatzoltan at gmail.com
2013. Feb. 3., V, 18:58:48 CET


Hat, semmit. Swinges vastag kliensek vannak. Meg egy glassfish a
serveren. Web service-es kommunikacio kozottunk.

Gábor Garami <gabor.garami at hron.me> írta (2013. február 3. 18:39):
> Mit hasznalsz helyette?
>
> Garami Gábor
> E-mail: gabor.garami at hron.me
> Tel: +36 20 235 9621
> MSN: hrgy at vipmail.hu
> Skype: hron84
>
>
> 2013/2/3 Zoltán Bernát <bernatzoltan at gmail.com>:
>> Ez ugy tunik valami spring-es huncutsag. Spring nalam nem jatszik.
>>
>> Tamás Magyar <magyusz at gmail.com> írta (2013. február 3. 16:44):
>>> AopContext.currentProxy()
>>>
>>>
>>> 2013/2/3 Böszörményi Péter <zmblevlist at gmail.com>
>>>>
>>>> Ott rontod el, hogy lokalisan hivod a deletePic metodust. Ilyenkor nem
>>>> jatszik a tranzakcios proxy. Az egyik megoldas, hogy beinjektalod a beanbe
>>>> onmagat, es azon a beanen hivod a deletePic metodust.
>>>>
>>>>
>>>> On Sun, 03 Feb 2013 15:17:45 +0100, Zoltán Bernát <bernatzoltan at gmail.com>
>>>> wrote:
>>>>
>>>>> Sziasztok!
>>>>>
>>>>> JPA kerdes. Tranzakcio kezeles. A megoldando feladat az lenne, hogy
>>>>> tobb entitast toroljek a DB-bol, de olyan modon, hogy ha valamelyik
>>>>> torles meghiusul (pl foreign key miatt), attol meg a tobbi torles
>>>>> rendben megtortenjen.
>>>>> (azaz egy sikertelen torles ne rollback-elje az egesz procedurat)
>>>>>
>>>>> Ugy gondoltam volna megoldani a dolgot, hogy egy tranzakcioban futo
>>>>> metodusbol ciklusban torlom a kepeket egy masik,
>>>>> TransactionAttributeType.REQUIRES_NEW tranzakcioban.
>>>>>
>>>>> A hibajelenseg az, hogy  ha egy torles nem sikerult a deletePic (Pix
>>>>> picEntity) metodusban(pl ConstraintViolationException miatt. (ami
>>>>> rendben is van)), akkor a metodus kovetkezo hivasanal mar
>>>>> TransactionRequiredException kivetel dobodik szinten a  deletePic (Pix
>>>>> picEntity) metodusban, es igy az amugy torolheto entitast sem sikerul
>>>>> torolni. Azaz ha csak egy entitas is van, amelyik nem torolheto, az
>>>>> osszes torlese meghiusul.
>>>>>
>>>>> Azt gondolom, elvi hibas a megoldasom, meg azt, hogy a
>>>>> TransactionAttributeType.REQUIRES_NEW pont ilyen esetekre lett
>>>>> kitalalva. Hol benazom el? (Hol ertem felre a
>>>>> TransactionAttributeType.REQUIRES_NEW szerepet)?
>>>>> Koszi!
>>>>>
>>>>> @TransactionAttribute(TransactionAttributeType.REQUIRED)
>>>>> public List<Integer> deletePix(List<Integer> ids){
>>>>>     for(Integer id : ids){
>>>>>         ...
>>>>>                     if(deletePic(pixBeanEntity)){
>>>>>                         ... //sikeres torles
>>>>>                     }
>>>>>     }
>>>>> }
>>>>>
>>>>>
>>>>> @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
>>>>>     private boolean deletePic (Pix picEntity){
>>>>>         try {
>>>>>             em.remove(picEntity); //em az EntitiManager
>>>>>             //org.hibernate.exception.ConstraintViolationException, ha
>>>>> nem megy a torles a foreign key miatt. Ez az elvart viselkedes.
>>>>>             //De: TransactionRequiredException jon akkor is, ha
>>>>>             em.flush(); //entitiManager flush
>>>>>             // itt tovabbi utasitasok vannak, amikre nem kerul a
>>>>> vezerles, ha a fenti flush() kivetelt dobott
>>>>>         } catch (Exception e) {
>>>>>             context.setRollbackOnly();
>>>>>             return false;
>>>>>         }
>>>>>         return true;
>>>>>     }
>>>>> _______________________________________________
>>>>> Javalist mailing list
>>>>> Javalist at lists.javaforum.hu
>>>>> http://lists.javaforum.hu/mailman/listinfo/javalist
>>>>
>>>>
>>>>
>>>> --
>>>> Üdvözlettel,
>>>> Böszörményi Péter
>>>>
>>>> _______________________________________________
>>>> Javalist mailing list
>>>> Javalist at lists.javaforum.hu
>>>> http://lists.javaforum.hu/mailman/listinfo/javalist
>>>
>>>
>>>
>>> _______________________________________________
>>> Javalist mailing list
>>> Javalist at lists.javaforum.hu
>>> http://lists.javaforum.hu/mailman/listinfo/javalist
>>>
>> _______________________________________________
>> Javalist mailing list
>> Javalist at lists.javaforum.hu
>> http://lists.javaforum.hu/mailman/listinfo/javalist
> _______________________________________________
> Javalist mailing list
> Javalist at lists.javaforum.hu
> http://lists.javaforum.hu/mailman/listinfo/javalist


További információk a(z) Javalist levelezőlistáról