-1

トランザクションなしでエンティティ データをデータベースに保存できません。PersistenceContextType.Extend は知っていますが、成功できません。


@NoTransaction
public class Application extends Controller {

    public static void create(String body) {
        // EntityTransaction tm = JPA.em().getTransaction();
        if (!JPA.isEnabled()) {
            System.out.println("JPA is not initialized");
        }
        EntityManager manager = JPA.entityManagerFactory.createEntityManager();
        //manager.setFlushMode(FlushModeType.COMMIT);
        manager.setProperty("org.hibernate.readOnly", false);
        //new Customer("001").save();
        if (!JPA.isInsideTransaction()) {
        //  manager.getTransaction().begin();
        }
        createContext(manager, false);
        new Customer("001").save();
        //manager.getTransaction().commit();
        /*
         * if (tm.equals(null)) { System.out.println("success"); }
         */
    }

    static void createContext(EntityManager entityManager, boolean readonly) {
        if (JPA.local.get() != null) {
            try {
                JPA.local.get().entityManager.close();
            } catch (Exception e) {
                // Let's it fail
            }
            JPA.local.remove();
        }
        JPA context = new JPA();
        context.entityManager = entityManager;
        // context.readonly = readonly;
        JPA.local.set(context);
    }
}

プレイがトランザクションを開始するのを防ぐために、JPA を自分でイニシャルしました。データをデータベースに保存したいのですが、TransactionRequiredException エラーが発生します。JPA操作にはトランザクションが必要であることは知っていましたが、例外があるかどうかを知りたいです。

4

1 に答える 1