Comparar dia, semana, mes e ano usando o criteria

0 respostas
J

bom dia pessoal, eu preciso filtrar uns objetos do banco de dados por período, mas eu não consigo especificar no criteria apenas o semana, mês ou o ano.

Calendar calendar = Calendar.getInstance();
			Date dataAtual = calendar.getTime();
			
			if(laudoPublicado.getCliente() != null){
				criteria.add(Expression.eq("cliente.idClienteFornecedor", laudoPublicado.getCliente().getIdClienteFornecedor()));
			}
			if(laudoPublicado.getInPeriodo() != null){
				
				//Esse e' o filtro de dia
				if(laudoPublicado.getInPeriodo() == 0){
					criteria.add(Expression.eq("data", dataAtual));
				}
				//esse deveria ser a semana?
			/*	if(laudoPublicado.getInPeriodo() == 1){
					laudoPublicado.setData(dataAtual);
					//criteria.add(Expression.eq("data.day", laudoPublicado.getData().get(Calendar.WEEK_OF_YEAR)));
					criteria.add(Expression.eq("data.year", laudoPublicado.getData().getYear()));
				}*/
				//esse e' o mes
				if(laudoPublicado.getInPeriodo() == 2){
					
					criteria.add(Expression.eq("data.month", calendar.get(Calendar.MONTH)));
					criteria.add(Expression.eq("data.year", calendar.get(Calendar.YEAR)));
					
				}
				//e ano
				if(laudoPublicado.getInPeriodo() == 3){
					criteria.add(Expression.eq("data.year", calendar.get(Calendar.YEAR)));
				}

e no banco a coluna se apresenta assim:

data timestamp without time zone NOT NULL,

ressaltando que a data no pojo é do tipo Date.

se alguém já passou ou sabe disso, eu agradeço a ajuda.

Criado 24 de novembro de 2010
Respostas 0
Participantes 1