Pessoal
Seria interessante criar um MAP nesta rotina,???
executo a rotina abaixo
Set<Analise> analisesConsultadas = analiseService
.buscarAnalisesPadraoPorMatriz(matriz);
************************************* retorna 1043 linhas
for (Analise analise : analisesConsultadas) {
AnaliseContratada analiseContratada = new AnaliseContratada(analise);
AnaliseItem analiseItem = AnaliseItemHelper.criarAnaliseItem(
itemAtual, analiseContratada);
this.todasAnalises.add(analiseItem);
}
Devido a demora aproximadamente 8 segundos -na rotina abaixo - devido ao 1043 registro que achou (analiseService.buscarAnalisesPadraoPorMatriz(matriz)
:
AnaliseItem analiseItem = AnaliseItemHelper.criarAnaliseItem(
itemAtual, analiseContratada);
Seria interessante criar um MAP nesta rotina,???
*****************************************************AnaliseServiceBean
public class AnaliseServiceBean implements AnaliseServiceLocal {
@PersistenceContext(unitName = "lims-pu")
EntityManager em;
@EJB(name = "ExecucaoServiceBean/local")
private ExecucaoServiceLocal resultadoService;
@SuppressWarnings("unchecked")
public Set<Analise> buscarAnalisesPadraoPorMatriz(Matriz matriz) {
StringBuffer jpql = new StringBuffer();
jpql.append("select a ");
jpql.append("from Analise a ");
jpql.append("where a.padrao = true ");
jpql.append(" and a.matriz = :matriz ");
Query query = em.createQuery(jpql.toString());
query.setParameter("matriz", matriz);
query.setHint("org.hibernate.cacheable", true);
Set<Analise> analises = new HashSet<Analise>(query.getResultList());
return analises;
}
***************************************************** AnaliseItemHelper
public class AnaliseItemHelper {
public static AnaliseItem criarAnaliseItem(ItemOrcamento itemOrcamento,
AnaliseContratada analiseContratada) {
return new AnaliseItem(analiseContratada, itemOrcamento, getService()
.buscarMetodosPorEnsaioMatriz(analiseContratada.getEnsaio(),
analiseContratada.getMatriz()));
}
***************************************************** ImportadorServiceBean
public class ImportadorServiceBean implements ImportadorServiceLocal {
@PersistenceContext(unitName = "lims-pu")
private EntityManager em;
@SuppressWarnings("unchecked")
public Set<Metodo> buscarMetodosPorEnsaioMatriz(Ensaio ensaio, Matriz matriz) {
StringBuilder jpql = new StringBuilder("select a.metodo ");
jpql.append("from Analise a ");
jpql.append("where a.ensaio = :ensaio ");
jpql.append("and a.matriz = :matriz ");
Query query = em.createQuery(jpql.toString());
query.setParameter("ensaio", ensaio);
query.setParameter("matriz", matriz);
return new HashSet<Metodo>(query.getResultList());
}