Melhorar Performace do Hibernate + JPA com Oracle

Boa Tarde Pessoal,

Estou desenvolvendo uma aplicação em java + Hibernate + JPa + Oracle,

Porem, quando estou executando a pagina, a mesma demora para trazer os resultados.

Estou fazendo da seguinte Maneira

persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">

  <persistence-unit name="PortalTMPNTC" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>com.br.model.Tmp_Ntc</class>
    <properties>
      <property name="hibernate.connection.username" value="operacoes_comis_o"/>
      <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
      <property name="hibernate.connection.password" value="**"/>
      <property name="hibernate.connection.url" value="jdbc:oracle:thin:@172.21.36.5:1521:d00comis"/>
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/> 
    </properties>
  </persistence-unit>

  <persistence-unit name="PortalParametros" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>com.br.model.Parametros</class>
    <properties>
      <property name="hibernate.connection.username" value="operacoes_comis_o"/>
      <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
      <property name="hibernate.connection.password" value="**"/>
      <property name="hibernate.connection.url" value="jdbc:oracle:thin:@172.21.36.5:1521:d00comis"/>
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/> 
    </properties>
  </persistence-unit>

  <persistence-unit name="Portal" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>com.br.model.Hist_Consolidado_2014</class>
    <properties>
      <property name="hibernate.connection.username" value="operacoes_comis_o"/>
      <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
      <property name="hibernate.connection.password" value="**"/>
      <property name="hibernate.connection.url" value="jdbc:oracle:thin:@172.21.36.5:1521:d00comis"/>
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/> 
    </properties>
  </persistence-unit>
  
  <persistence-unit name="PortalQueryes" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>com.br.model.Queryes</class>
    <properties>
      <property name="hibernate.connection.username" value="operacoes_comis_o"/>
      <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
      <property name="hibernate.connection.password" value="**"/>
      <property name="hibernate.connection.url" value="jdbc:oracle:thin:@172.21.36.5:1521:d00comis"/>
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/> 
    </properties>
  </persistence-unit>    
  
  <persistence-unit name="PortalCronograma" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>com.br.model.Cronograma</class>
    <properties>
      <property name="hibernate.connection.username" value="operacoes_comis_o"/>
      <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
      <property name="hibernate.connection.password" value="**"/>
      <property name="hibernate.connection.url" value="jdbc:oracle:thin:@172.21.36.5:1521:d00comis"/>
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/> 
    </properties>
  </persistence-unit>  
  
  <persistence-unit name="PortalCronograma" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>com.br.model.Cronograma</class>
    <properties>
      <property name="hibernate.connection.username" value="operacoes_comis_o"/>
      <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
      <property name="hibernate.connection.password" value="**"/>
      <property name="hibernate.connection.url" value="jdbc:oracle:thin:@172.21.36.5:1521:d00comis"/>
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/> 
    </properties>
  </persistence-unit>    
  
  <persistence-unit name="PortalArq_Download" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>com.br.model.Arq_Download</class>
    <properties>
      <property name="hibernate.connection.username" value="operacoes_comis_o"/>
      <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
      <property name="hibernate.connection.password" value="**"/>
      <property name="hibernate.connection.url" value="jdbc:oracle:thin:@172.21.36.5:1521:d00comis"/>
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/> 
    </properties>
  </persistence-unit>   
  
  <persistence-unit name="PortalPrivilegio" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>com.br.model.Privilegio</class>
    <properties>
      <property name="hibernate.connection.username" value="operacoes_comis_o"/>
      <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
      <property name="hibernate.connection.password" value="**"/>
      <property name="hibernate.connection.url" value="jdbc:oracle:thin:@172.21.36.5:1521:d00comis"/>
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/> 
    </properties>
  </persistence-unit>    
  
  <persistence-unit name="PortalPerfil" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>com.br.model.Perfil</class>
    <properties>
      <property name="hibernate.connection.username" value="operacoes_comis_o"/>
      <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
      <property name="hibernate.connection.password" value="**"/>
      <property name="hibernate.connection.url" value="jdbc:oracle:thin:@172.21.36.5:1521:d00comis"/>
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/> 
    </properties>
  </persistence-unit>  
  
  <persistence-unit name="PortalLog" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>com.br.model.Log</class>
    <properties>
      <property name="hibernate.connection.username" value="operacoes_comis_o"/>
      <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
      <property name="hibernate.connection.password" value="**"/>
      <property name="hibernate.connection.url" value="jdbc:oracle:thin:@172.21.36.5:1521:d00comis"/>
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/> 
    </properties>
  </persistence-unit>  
  
    <persistence-unit name="PortalMenu" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>com.br.model.Menu</class>
    <properties>
      <property name="hibernate.connection.username" value="operacoes_comis_o"/>
      <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
      <property name="hibernate.connection.password" value="**"/>
      <property name="hibernate.connection.url" value="jdbc:oracle:thin:@172.21.36.5:1521:d00comis"/>
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/> 
    </properties>
  </persistence-unit>
  
  <persistence-unit name="PortalBaseApuracao" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <class>com.br.model.Base_Apuracao</class>
    <properties>
      <property name="hibernate.connection.username" value="operacoes_comis_o"/>
      <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
      <property name="hibernate.connection.password" value="**"/>
      <property name="hibernate.connection.url" value="jdbc:oracle:thin:@172.21.36.5:1521:d00comis"/>
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/> 
    </properties>
  </persistence-unit>  
  
  <persistence-unit name="PortalUsuario" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <class>com.br.model.Usuario</class>
    <properties>
      <property name="hibernate.connection.username" value="operacoes_comis_o"/>
      <property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
      <property name="hibernate.connection.password" value="**"/>
      <property name="hibernate.connection.url" value="jdbc:oracle:thin:@172.21.36.5:1521:d00comis"/>
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
      <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/> 
    </properties>
  </persistence-unit>    
</persistence>

Minha classe de Menu - Model

package com.br.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="Menu")
public class Menu {
	
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	int    COD_MENU;
	@Column
	String DSC_MENU;
	@Column
	String COD_MENU_PAI;
	@Column
	String COD_PERFIL;
	@Column
	String SIT_NIVEL;
	@Column
	String DSC_ACAO;
	
	public int getCOD_MENU() {
		return COD_MENU;
	}
	
	public void setCOD_MENU(int cOD_MENU) {
		COD_MENU = cOD_MENU;
	}
	
	public String getDSC_MENU() {
		return DSC_MENU;
	}
	
	public void setDSC_MENU(String dSC_MENU) {
		DSC_MENU = dSC_MENU;
	}
	
	public String getCOD_MENU_PAI() {
		return COD_MENU_PAI;
	}
	
	public void setCOD_MENU_PAI(String cOD_MENU_PAI) {
		COD_MENU_PAI = cOD_MENU_PAI;
	}
	
	public String getCOD_PERFIL() {
		return COD_PERFIL;
	}
	
	public void setCOD_PERFIL(String cOD_PERFIL) {
		COD_PERFIL = cOD_PERFIL;
	}

	public String getSIT_NIVEL() {
		return SIT_NIVEL;
	}

	public void setSIT_NIVEL(String sIT_NIVEL) {
		SIT_NIVEL = sIT_NIVEL;
	}

	public String getDSC_ACAO() {
		return DSC_ACAO;
	}

	public void setDSC_ACAO(String dSC_ACAO) {
		DSC_ACAO = dSC_ACAO;
	}
	
}

Classe de Menu - Dao

package com.br.dao;

import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import com.br.model.Menu;

public class MenuDao {
	
	/* Metodo de Cria&#65533;&#65533;o do Entity Manager */
	private EntityManager getEntityManager(){
		
		EntityManagerFactory factory;
		EntityManager entityManager;
		
		factory = Persistence.createEntityManagerFactory("PortalMenu");
		
		entityManager = factory.createEntityManager();
		
		if (factory.isOpen()){
			factory.close();
		}
		
		return entityManager;
	}
	
	/* Metodo de adi&#65533;&#65533;o de Dados ao Banco de Dados */	
	private Menu gravar(Menu menu){
		
		EntityManager entityManager = getEntityManager();
		
		try{			
			entityManager.getTransaction().begin();
			System.out.println("Incluindo Menu");
			if (menu.getDSC_MENU() != null){
				menu = entityManager.merge(menu);
			}else{
				entityManager.persist(menu);
			}	
			entityManager.getTransaction().commit();
		}finally{
			entityManager.close();
		}
		return menu;
	}
	
	/* Metodo de altera&#65533;&#65533;o de Dados ao Banco de Dados */
	private Menu atualizar(Menu menu){
		
		EntityManager entityManager = getEntityManager();
		
		try{
			entityManager.getTransaction().begin();
			System.out.println("Atualizando Menu");
			if(menu.getDSC_MENU() != null){
				menu = entityManager.merge(menu);
			}else{
				entityManager.merge(menu);
			}
			entityManager.getTransaction().commit();
		}finally{
			entityManager.close();
		}
		
		return menu;
	}
	
	/* Metodo de Remo&#65533;&#65533;o de Dados ao Banco de Dados */
	private void remover(Menu menu){
		
		EntityManager entityManager = getEntityManager();
		
		try{
			entityManager.getTransaction().begin();
			System.out.println("Removendo menu codigo : " + menu.getCOD_MENU());
			Object objRemove = entityManager.merge(menu);
			entityManager.remove(objRemove);
			entityManager.getTransaction().commit();
		} finally{
			entityManager.close();
		}
	}	
	
	/* Metodo de consulta no banco de dados */
	private List<Menu> consultar(List<String> pColunas, List<String> pValores){
		
		EntityManager entityManager = getEntityManager();
		String vSQL = "from Menu as menu";
		
		if (pColunas != null){
			vSQL += " WHERE ";
			
			for (int i = 0; i < pColunas.size(); i++){
				if (i==0){
					vSQL += " " + pColunas.get(i).toString() + " = '" + pValores.get(i).toString() + "'";
				}else{
					vSQL += " AND " + pColunas.get(i).toString() + " = '" + pValores.get(i).toString() + "'";
				}
			}
		}
		
		vSQL += " ORDER BY DSC_MENU";
		System.out.println("Consulta executada : " + vSQL);
		Query vQuery = entityManager.createQuery(vSQL);		
		@SuppressWarnings("unchecked")
		List<Menu> listaMenu = vQuery.getResultList();
		return listaMenu;		
	}	
	
	/* Metodo de consulta no banco de dados */
	private List<Menu> consultar(List<String> pColunas, List<String> pValores, String pOrder){
		
		EntityManager entityManager = getEntityManager();
		String vSQL = "from Menu as menu";
		
		if (pColunas != null){
			vSQL += " WHERE ";
			
			for (int i = 0; i < pColunas.size(); i++){
				if (i==0){
					vSQL += " " + pColunas.get(i).toString() + " = '" + pValores.get(i).toString() + "'";
				}else{
					vSQL += " AND " + pColunas.get(i).toString() + " = '" + pValores.get(i).toString() + "'";
				}
			}
		}
		
		vSQL += " ORDER BY "+pOrder;
		System.out.println("Consulta executada : " + vSQL);
		Query vQuery = entityManager.createQuery(vSQL);		
		@SuppressWarnings("unchecked")
		List<Menu> listaMenu = vQuery.getResultList();
		return listaMenu;		
	}	
	
	public Menu add(Menu menu){
		return gravar(menu);
	}
	
	public Menu alter(Menu menu){
		return atualizar(menu);
	}
	
	public void delete(Menu menu){
		remover(menu);
	}
	
	public List<Menu> select(List<String> pColunas, List<String> pValores){
		return consultar(pColunas,pValores);
	}	
	
	public List<Menu> select(List<String> pColunas, List<String> pValores, String pOrder){
		return consultar(pColunas,pValores,pOrder);
	}		
}
Classe de Menu - View
package com.br.view;

import java.util.ArrayList;
import java.util.List;

import com.br.dao.MenuDao;
import com.br.model.Menu;

public class MenuView {
	
	private String geraMenu(String pLogin, String pMachine){
		
		/*Variaveis*/
		String vCodLine 	   		= null;
		//List<String> vCampos   		= new ArrayList<String>();
		//List<String> vValores  		= new ArrayList<String>();
		List<Menu>	 listaMenu 		= new ArrayList<Menu>();
		List<Menu>   listaMenuFilho = new ArrayList<Menu>(); 
		List<Menu>   listaMenuParc  = new ArrayList<Menu>(); 
		//boolean      vControle      = false;
		
		/*Objetos de Dao*/
		MenuDao menuDao = new MenuDao();
		
		/*Objetos de Model*/
		Menu menu  = new Menu();
		Menu menuf = new Menu();
		
		/*Operação*/
		listaMenu     = menuDao.select(null, null,"SIT_ORDER");
		listaMenuParc = listaMenu;//menuDao.select(null, null,"SIT_ORDER");
		/*Operação*/
		
		vCodLine  = "<table id=\"MenuSuperior\" width=\"1348\" height=\"167\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n";
		vCodLine += "<tr>\n";
		vCodLine += " <td width=\"898\" height=\"100\" background=\"img/topo_01.gif\" style=\"background: url(img/topo_01.gif) no-repeat;\">\n";
		vCodLine += "</td>\n";
		
		vCodLine += " <td align=\"right\" width=\"550\" valign=\"top\">\n";
		vCodLine += "  <p>&nbsp;</p>\n";
	    vCodLine += "  <p><b><strong></br></br><font color=\"#000000\" size=\"2\" face=\"Arial, Helvetica, sans-serif\"> Usuario : " +pLogin+"</br></p><p>Estação : " + pMachine+"</font></strong></p></b></td>\n";
		
		//vCodLine += " <td>\n";
		//vCodLine += "  <img src=\"img/topo_02.gif\" width=\"539\" height=\"86\" alt=\"\"></td>\n";
		vCodLine += "</tr>\n";		
		vCodLine += "<tr>\n";
		vCodLine += " <td colspan=\"2\">\n";	
		vCodLine += "  <div class=\"wrap\" style=\"position:absolute; z-index:100;\">\n";
		vCodLine += "   <nav>\n";
		vCodLine += "    <ul class=\"menu\">\n";

		for(int i = 0; i < listaMenu.size(); i++){
			
			menu = listaMenu.get(i);
			
			if (menu.getSIT_NIVEL().equals("0")){			
			/*	if (menu.getDSC_MENU().equals("Home") || menu.getDSC_MENU().equals("HOME")){
					vCodLine += "     <li><a href=\""+menu.getDSC_ACAO()+"\"><span class=\"iconic home\"></span>"+menu.getDSC_MENU()+"</a>";
				}else{
					if (menu.getDSC_MENU().equals("Suporte") || menu.getDSC_MENU().equals("SUPORTE")){
						vCodLine += "     <li><a href=\"#\"><span class=\"iconic mail\"></span>"+menu.getDSC_MENU()+"</a>";
					}else{
						vCodLine += "     <li><a href=\"#\"><span class=\"\"></span>"+menu.getDSC_MENU()+"</a>\n";	
					}
				}*/
				vCodLine += "     <li><a href=\""+menu.getDSC_ACAO()+"\"><span class=\"\"></span>"+menu.getDSC_MENU()+"</a>\n";	
			}
			
			listaMenuFilho.clear();
			
			for (int k = 0; k < listaMenuParc.size(); k++){
				menuf = listaMenuParc.get(k);
				if (menuf.getCOD_MENU_PAI() != null){
					if (Integer.parseInt(menuf.getCOD_MENU_PAI()) == menu.getCOD_MENU()){
						listaMenuFilho.add(listaMenuParc.get(k));
					}				
				}
			} 
			
			if (listaMenuFilho.size() > 0){
				vCodLine += "      <ul>\n";
			
				for (int j = 0; j < listaMenuFilho.size(); j++){
					menuf = listaMenuFilho.get(j);
					vCodLine += "       <li><a href=\""+menuf.getDSC_ACAO()+"\">"+menuf.getDSC_MENU()+"</a></li>\n";
				}
			
				vCodLine += "      </ul>\n";
				vCodLine += "     </li>\n";	
			}
			
		}		

		vCodLine += "    </ul>\n";
		vCodLine += "   </nav>\n"; 
		vCodLine +="  </div>\n"; 			
		vCodLine += " </td>\n";
		vCodLine += "</tr>\n";		
		vCodLine += "</table>\n";
		return vCodLine;
		
	}
	
	public String getMenu(String pLogin, String pMachine){
		return geraMenu(pLogin,pMachine);
	}

}

Pagina que carrega

[code]
<%@ page language=“java” contentType="text/html; charset=ISO-8859-1"
pageEncoding=“ISO-8859-1”%>
<%@ page import=“com.br.util.funcoesPaginaPadrao”%>
<%@ page import=“com.br.view.MenuView”%>
<%@ page import=“com.br.util.funcoesPaginaCentroHome”%>
<%@ page import=“com.br.util.funcoesPaginaDireitoHome”%>

<% String vLogin = session.getAttribute("vUsuarioLogado").toString(); String vMachine = session.getAttribute("vMachine").toString(); %> <% funcoesPaginaPadrao paginaPadrao = new funcoesPaginaPadrao(); %> <%=paginaPadrao.getHeadPadrao()%> <%String vUser = (String) session.getAttribute("user");%> <% MenuView menu = new MenuView();%> <%=menu.getMenu(vLogin,vMachine)%>
<% funcoesPaginaCentroHome paginaHomeCentro = new funcoesPaginaCentroHome();%>
<%=paginaHomeCentro.getCentroHome()%>
[/code]

Alguem sabe como resolver a lentidão ?

Pq vc está abrindo e fechando a Factory toda hora?

Não existe a necessidade disso, ela pode ser estática e inicializada apenas uma vez. Factory é thread safe.

Hebert, não conheço muito do hibernate, mais considerei que seria melhor fechar a conexão.
Porem alem disso, existe outro ponto que poderia deixar a resposta mais rapida ?

Não olhei o código todo. Apenas ao ver aquilo ali já sabia que é o responsável por muita demora. Ainda mais com tantos PersistenceUnits.

Havia deixado uma só.
Mais achei que ele carregava todos de uma vez, e tentei diminuir para individuais.
Porem não surtiu efeito.
Seria melhor utilizar apenas um unidade de persistencia ?

[quote=aszarael]Havia deixado uma só.
Mais achei que ele carregava todos de uma vez, e tentei diminuir para individuais.
Porem não surtiu efeito.
Seria melhor utilizar apenas um unidade de persistencia ?[/quote]
Vai da necessidade do projeto. Não existe resposta certa.

Bom galera,

melhorei a perfomace da minha aplicação,

removendo estas linhas do persistence.xml

      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
      <property name="hibernate.hbm2ddl.auto" value="update"/>