[Javalist] TransactionAttributeType.REQUIRES_NEW

István Viczián viczian.istvan at gmail.com
2013. Feb. 3., V, 19:04:54 CET


Hi,

Ennek EJB megfelelője:
SessionContext.getBusinessObject()
--
Viczián István


2013/2/3 Zoltán Bernát <bernatzoltan at gmail.com>:
> 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
> _______________________________________________
> 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