javax.persistence.PersistenceException: org.hibernate.TransactionException: уже есть связанное управляемое соединение - PullRequest
0 голосов
/ 15 апреля 2020

Я использую JPA + Hibernate в своем приложении. Я пытаюсь вставить 10000 данных в mysql БД. Но я получил эту ошибку. Как решить?

javax.persistence.PersistenceException: org.hibernate.TransactionException: уже есть связанное управляемое соединение

Вызвано: org.hibernate.TransactionException: уже есть связанное управляемое соединение

    //For loop call 10000 times in getMdmId() method and pass MdmId object each time.


    //@PersistenceContext
    @PersistenceContext(type = PersistenceContextType.TRANSACTION)
    private static EntityManager em = getEntityManager();
    public static String getMdmId(MdmId mdm) {

        String mdmId = "";
        EntityTransaction tr = em.getTransaction();

        try {
            if (!tr.isActive())
                tr.begin();
                em.persist(mdm);
                mdmId = Long.toString(mdm.getId());
            //  tr.commit();
            if (tr.isActive()) tr.commit();
            else em.flush();

        } catch (Exception error) {
            logger.error(error.getMessage());
            if (tr.isActive()) tr.rollback();
            error.printStackTrace();
        }
        System.out.println("----"+mdmId);
        return mdmId;
    }

    private  static EntityManager getEntityManager() {
        return Persistence.createEntityManagerFactory("sql-connection").createEntityManager();
    }

...