Merhaba,

Eclipselink kullanıyorum. Persistence'ım aşağıdaki gibidir.

<persistence-unit name="PROJE_PU" transaction-type="JTA">

İç içe persist işlemi yaparken catch e düşen işlemi geri almam lazım. Örneğin Fatura ve Fatura Detay işlemi kayıt ederken Fatura Detay'da bir hata ile karşılaşıldığında Fatura Başlığını da kaydetmesini engellemem gerekiyor.

EntityManagerFactory emf = Persistence.createEntityManagerFactory("PROJE_PU");
        EntityManager em = emf.createEntityManager();
        try {
            em.getTransaction().begin();
            try {
                em.persist(faturaDetay);
            } catch (Exception e) {
                if(em.getTransaction().isActive()){
                    em.getTransaction().rollback();
                }
            }
            em.persist(fatura);
            em.getTransaction().commit();
        } catch (Exception e) {
             if(em.getTransaction().isActive()){
                    em.getTransaction().rollback();
                }
        }

Şeklinde kullandığımda ise Cannot use an EntityTransaction while using JTA.

hatası ile karşılaşıyorum. Konu ile ilgili yardımlarınız için teşekkür ediyorum

soruldu: 30 Eyl '15, 06:16

kurtomerfaruk's gravatar image

kurtomerfaruk
1.3k222940
cevap kabul oranı: 30%


Xml dosyasinda <jta-data-source> kullandiniz sanirim. Bir de söyle deneyin:

<persistence-unit name="PROJE_PU" transaction-type="RESOURCE_LOCAL">
        <non-jta-data-source>abc</non-jta-data-source>
    </persistence-unit>
permanent link

cevaplandı: 30 Eyl '15, 06:38

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183
cevap kabul oranı: 52%

Cevabınız
toggle preview

powered by BitNami OSQA