<div dir="ltr">AopContext.currentProxy()<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/2/3 Böszörményi Péter <span dir="ltr">&lt;<a href="mailto:zmblevlist@gmail.com" target="_blank">zmblevlist@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">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.<div class="HOEnZb">
<div class="h5"><br>
<br>
On Sun, 03 Feb 2013 15:17:45 +0100, Zoltán Bernát &lt;<a href="mailto:bernatzoltan@gmail.com" target="_blank">bernatzoltan@gmail.com</a>&gt; wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Sziasztok!<br>
<br>
JPA kerdes. Tranzakcio kezeles. A megoldando feladat az lenne, hogy<br>
tobb entitast toroljek a DB-bol, de olyan modon, hogy ha valamelyik<br>
torles meghiusul (pl foreign key miatt), attol meg a tobbi torles<br>
rendben megtortenjen.<br>
(azaz egy sikertelen torles ne rollback-elje az egesz procedurat)<br>
<br>
Ugy gondoltam volna megoldani a dolgot, hogy egy tranzakcioban futo<br>
metodusbol ciklusban torlom a kepeket egy masik,<br>
TransactionAttributeType.<u></u>REQUIRES_NEW tranzakcioban.<br>
<br>
A hibajelenseg az, hogy  ha egy torles nem sikerult a deletePic (Pix<br>
picEntity) metodusban(pl ConstraintViolationException miatt. (ami<br>
rendben is van)), akkor a metodus kovetkezo hivasanal mar<br>
TransactionRequiredException kivetel dobodik szinten a  deletePic (Pix<br>
picEntity) metodusban, es igy az amugy torolheto entitast sem sikerul<br>
torolni. Azaz ha csak egy entitas is van, amelyik nem torolheto, az<br>
osszes torlese meghiusul.<br>
<br>
Azt gondolom, elvi hibas a megoldasom, meg azt, hogy a<br>
TransactionAttributeType.<u></u>REQUIRES_NEW pont ilyen esetekre lett<br>
kitalalva. Hol benazom el? (Hol ertem felre a<br>
TransactionAttributeType.<u></u>REQUIRES_NEW szerepet)?<br>
Koszi!<br>
<br>
@TransactionAttribute(<u></u>TransactionAttributeType.<u></u>REQUIRED)<br>
public List&lt;Integer&gt; deletePix(List&lt;Integer&gt; ids){<br>
    for(Integer id : ids){<br>
        ...<br>
                    if(deletePic(pixBeanEntity)){<br>
                        ... //sikeres torles<br>
                    }<br>
    }<br>
}<br>
<br>
<br>
@TransactionAttribute(<u></u>TransactionAttributeType.<u></u>REQUIRES_NEW)<br>
    private boolean deletePic (Pix picEntity){<br>
        try {<br>
            em.remove(picEntity); //em az EntitiManager<br>
            //org.hibernate.exception.<u></u>ConstraintViolationException, ha<br>
nem megy a torles a foreign key miatt. Ez az elvart viselkedes.<br>
            //De: TransactionRequiredException jon akkor is, ha<br>
            em.flush(); //entitiManager flush<br>
            // itt tovabbi utasitasok vannak, amikre nem kerul a<br>
vezerles, ha a fenti flush() kivetelt dobott<br>
        } catch (Exception e) {<br>
            context.setRollbackOnly();<br>
            return false;<br>
        }<br>
        return true;<br>
    }<br>
______________________________<u></u>_________________<br>
Javalist mailing list<br>
<a href="mailto:Javalist@lists.javaforum.hu" target="_blank">Javalist@lists.javaforum.hu</a><br>
<a href="http://lists.javaforum.hu/mailman/listinfo/javalist" target="_blank">http://lists.javaforum.hu/<u></u>mailman/listinfo/javalist</a><br>
</blockquote>
<br>
<br></div></div><span class="HOEnZb"><font color="#888888">
-- <br>
Üdvözlettel,<br>
Böszörményi Péter</font></span><div class="HOEnZb"><div class="h5"><br>
______________________________<u></u>_________________<br>
Javalist mailing list<br>
<a href="mailto:Javalist@lists.javaforum.hu" target="_blank">Javalist@lists.javaforum.hu</a><br>
<a href="http://lists.javaforum.hu/mailman/listinfo/javalist" target="_blank">http://lists.javaforum.hu/<u></u>mailman/listinfo/javalist</a><br>
</div></div></blockquote></div><br></div>