Cache se segundo nível não funciona em algumas situações

2 respostas
A

Olá pessoal,

Estou com um problema com o cache de segundo nível (EhCache) quando utilizado em uma query.

O cache não funciona se eu ativar qualquer uma das linhas comentada.

Alguém sabe como resolver isso?

public List<ViewProcesso> clienteAndamento(Integer matrizId, String orderField, 
			Boolean orderDesc, Integer startRow, Integer MaxRows) throws Exception{
		
		List<ViewProcesso> list = null;
		
		try{
			Calendar data = Calendar.getInstance();   
			data.setTime(new Date());   
			data.add(Calendar.DATE,- 5); 
			
			Calendar dataAbertura = Calendar.getInstance();
			dataAbertura.set(Calendar.YEAR,2011);
			dataAbertura.set(Calendar.MONTH,0);
			dataAbertura.set(Calendar.DAY_OF_MONTH,1);
			
			Criteria c = session.createCriteria(ViewProcesso.class,"processo");
			c.add(Restrictions.eq("processo.agenda_id",matrizId));			
			
			c.add(Restrictions.eq("processo.tipo_processo", "I"));
			c.add(Restrictions.isNull("processo.data_enviofaturamento"));
			
			c.setFirstResult(startRow);
			c.setMaxResults(MaxRows);
			
			
			//c.add(Restrictions.gt("processo.insert_data", dataAbertura.getTime()) ); nao funciona
		        
                        /*
			Criterion c3 = Restrictions.isNull("processo.data_faturamento");
			Criterion c4 = Restrictions.gt("processo.data_faturamento", data.getTime());		
			c.add(Restrictions.or(c3, c4));
			*/
						
			if(orderField.equals("") || orderField == null){
				if(orderDesc == true){
					c.addOrder(Order.desc("processo.nref"));
				}else{
					c.addOrder(Order.asc("processo.nref"));
				}
			}else{
				if(orderDesc == true){
					c.addOrder(Order.desc(orderField));
				}else{
					c.addOrder(Order.asc(orderField));
				}
			}
			
			c.setCacheable(true);
			list = c.list();
		}catch (Exception e) {
			new GeraFacesMessage2(FacesMessage.SEVERITY_ERROR,
					"ATENÇÃO: OCORREU UM ERRO DURANTE O PROCESSAMENTO, A OPERAÇÃO NÃO FOI EFETUADA! \n",e);
		}

		return list;
	}

2 Respostas

tmvolpato

vc está usando hibernate 4?

A

Utilizo a versão 3x.

Criado 22 de março de 2012
Ultima resposta 24 de jul. de 2012
Respostas 2
Participantes 2