سؤال

أنا أستخدم OpenJPA وأريد تكوينه لاستخدام AutoCommit في كل عملية كتابة/إدراج.

في الوقت الحالي ، يجب أن أفعل هذا:

        MyEntity e = new MyEntity();
        em.getTransaction().begin();
        em.persist(e);
        em.getTransaction().commit();

ما أريد أن أكون قادرًا على فعله هو:

MyEntity e = new MyEntity();        
em.persist(e); // auto commit here

لدي هذا الخاصية تم تعيينه على صحيح:

openjpa.NontransactionalWrite : true

أي أدلة؟!

هل كانت مفيدة؟

المحلول

لا يمكنك تلبية تلقائيًا مع JPA. إذا كنت ترغب في إزالة إدارة المعاملات المحلية ، فاستخدم معاملات JTA/CMT أو الربيع المدارة.

نصائح أخرى

على حد علمي ، يستخدم OpenJPA قيمة AutoCommit من الاتصال الأساسي. لكنه يعين صراحة التلقائي على خطأ كلما بدأت معاملة.

يمكنك التحقق من الاتصال الأساسي بالرمز التالي:

OpenJPAEntityManager oem = OpenJPAPersistence.cast(em);
Connection conn = (Connection) oem.getConnection();
boolean autoCommit = conn.getAutoCommit();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top