@Gabriel2017 escreveu:
Galera estou com um problema, um exemplo tenho 1000 registros para adicionar em algumas tabelas, onde dentro desse processo 7 movimentação no banco, 4 select e 3 inserts.
Depois de um tempo mais ou menos quando já inseriu 500 registros, o processo fica extremamente lento, inserindo um por vez. Podem me ajudar?
Sempre que consulto ou realizado a inserção eu utilizo o comando ClienteJpaDAO.getInstance()
.CLASSEQUEVOUFAZEROPERACAOABAIXOpublic class ClienteJpaDAO {
private static ClienteJpaDAO instance; protected EntityManager entityManager; public static ClienteJpaDAO getInstance(){ if (instance == null){ instance = new ClienteJpaDAO(); } return instance; } private ClienteJpaDAO() { entityManager = getEntityManager(); } private EntityManager getEntityManager() { EntityManagerFactory factory = Persistence.createEntityManagerFactory("crudHibernatePU"); if (entityManager == null) { entityManager = factory.createEntityManager(); } return entityManager; } public Object persist(Object cliente) { try { entityManager.getTransaction().begin(); entityManager.persist(cliente); entityManager.getTransaction().commit(); } catch (Exception ex) { ex.printStackTrace(); entityManager.getTransaction().rollback(); } return cliente; } public tabelab merge(tabelab cliente) { Object toreturn = null; try { entityManager.getTransaction().begin(); toreturn = entityManager.merge(cliente); entityManager.getTransaction().commit(); } catch (Exception ex) { ex.printStackTrace(); entityManager.getTransaction().rollback(); } return (tabelab) toreturn; } public void merge3(tabelac cliente) { try { entityManager.getTransaction().begin(); entityManager.merge(cliente); entityManager.getTransaction().commit(); } catch (Exception ex) { ex.printStackTrace(); entityManager.getTransaction().rollback(); } } public tabelab validarLogin(String codigo){ tabelab cliente = new tabelab(); try{ Query query = entityManager.createQuery("select a from tabelab as a "+ "where a.codigo = :paramFinalizado"); query.setParameter("paramFinalizado", codigo); cliente = (tabelab) query.getSingleResult(); //caso nao exista BD nao retorna null } catch(Exception ex){ return cliente; } return cliente; } public int consultarcat(String nome_exibicao){ int valor = 0; // EntityManager em = getEntityManager(); try{ Query query = entityManager.createQuery("select id from item_cat as a "+ "where a.nome_exibicao = :paramFinalizado"); query.setParameter("paramFinalizado", nome_exibicao); valor = (int) query.getSingleResult(); //caso nao exista BD nao retorna null } catch(Exception ex){ return 0; } return valor; } public String validarDadosTmp(String codigo, String uf, int mes, int ano, int desoneradoOuN) { String codigo1 = null; try { Query query = entityManager.createQuery("select a.codigo from tabelab as a" + " where a.codigo = :paramFinalizado" + " and a.unidade_federativa = :paramFinalizado2" + " and a.mes = :paramFinalizado3" + " and a.ano = :paramFinalizado4" + " and a.desonerado = :paramFinalizado5"); query.setParameter("paramFinalizado", codigo); query.setParameter("paramFinalizado2", uf); query.setParameter("paramFinalizado3", mes); query.setParameter("paramFinalizado4", ano); query.setParameter("paramFinalizado5", desoneradoOuN); codigo1 = (String) query.getSingleResult(); // caso nao exista BD nao retorna null } catch (Exception ex) { return codigo1; } finally{ //instance. } return codigo1; } public tabelaz validar(String codigo, int mes, int ano, int idUf) { tabelaz teste = new tabelaz(); try { Query query = entityManager.createQuery("select t2 from tabelau as t1, tabelaz as t2" + " where t1.id = t2.id_insumo" + " and t1.codigo = :paramFinalizado" + " and t2.mes = :paramFinalizado2" + " and t2.ano = :paramFinalizado3" + " and t2.id_uf = :paramFinalizado4"); query.setParameter("paramFinalizado", codigo); query.setParameter("paramFinalizado2", mes); query.setParameter("paramFinalizado3", ano); query.setParameter("paramFinalizado4", idUf); teste= (tabelaz) query.getSingleResult(); // caso nao exista BD nao retorna null } catch (Exception ex) { return teste; } return teste; }}
Mensagens: 5
Participantes: 3