Filtro com Criteria especificando um Enum

0 respostas
jsfjava
N

Boa tarde pessoal.
Estou tentando realizar uma filtragem de uma tabela mostrando só um tipo de status do enum, mas não estou tendo sucesso.

Minha Classe Agenda

public class Agenda implements Serializable {

private static final long serialVersionUID = 1L;

private Long id;
private String observacao;
private Date dataAtendimento;
private Aluno aluno;
private Aluno aluno2;
private Disciplina disciplina;
private Lista lista;

.
.
.

Minha Lista

public class Lista implements Serializable {

private static final long serialVersionUID = 1L;

private Long id;
private List<Agenda> agendas_ = new ArrayList<>();
private Urgencia urgencia;
private StatusAgendamento status;

.
.
.

Meu Enum

public enum StatusAgendamento {

AGENDADO, ESPERA

}

Meu filtro
public class AgendaFilter implements Serializable {

private static final long serialVersionUID = 1L;

private Date dataAtenderDe;
private Date dataAtenderAte;
private int primeiroRegistro;
private int quantidadeRegistros;
private StatusAgendamento[] statuses;

.
.
.

Meu repository

private Criteria criarCriteriaParaFiltro(AgendaFilter filtro) {
Session session = this.manager.unwrap(Session.class);

Criteria criteria = session.createCriteria(AgendaMarcacao.class)
			.createAlias("lista", "l");

	if (filtro.getDataAtenderDe() != null) {
		criteria.add(Restrictions.ge("dataAtendimento", filtro.getDataAtenderDe()));
	}

	if (filtro.getDataAtenderAte() != null) {
		criteria.add(Restrictions.le("dataAtendimento", filtro.getDataAtenderAte()));
	}
	
	if (filtro.getStatuses() != null) {

		criteria.add(Restrictions.eq("l.status", StatusAgendamento.AGENDADO));
		
	}

	return criteria;
}

Essa ultima parte do repository que estou com dificuldade…
if (filtro.getStatuses() != null) {

criteria.add(Restrictions.eq("l.status", StatusAgendamento.AGENDADO));
		
	}
Criado 24 de setembro de 2017
Respostas 0
Participantes 1