Quantcast
Channel: Programação - GUJ
Viewing all articles
Browse latest Browse all 33093

Java Hibernate após um tempo fica muito lento a inserção

$
0
0

@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()
.CLASSEQUEVOUFAZEROPERACAOABAIXO

public 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

Ler tópico completo


Viewing all articles
Browse latest Browse all 33093


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>