Criteria

Olá povo.
Por várias tentativas de listar dados que não estivessem repetidos e ainda os tenho, não sei mais o que fazer.
Usei distinct em criteria e ainda groupBy, mas não resolveu o problema, abaixo o método que uso para fazê-lo:

	@SuppressWarnings("unchecked")
	@Override
	public List<Atendimento> listarTodosOrdenadosPelasMaisAntigos() {
		Criteria criteria = session.createCriteria(Atendimento.class).setProjection(Projections.projectionList().add(Projections.distinct(Projections.property("id"))));
		criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
		return criteria.list();
	}
}

A entidades envolvida:

@Id
	@GeneratedValue
	@Column(name = "ID_ATENDIMENTO")
	private Long id;

	@ManyToMany(cascade = CascadeType.REMOVE, fetch = FetchType.LAZY)
	@JoinTable(name = "doador_atendimento", joinColumns = { @JoinColumn(name = "ID_ATENDIMENTO") }, inverseJoinColumns = { @JoinColumn(name = "ID_DOADOR") })
	private List<Doador> doadores = new ArrayList<Doador>();

	@ManyToMany(cascade = CascadeType.REMOVE, fetch = FetchType.LAZY)
	@JoinTable(name = "receptor_atendimento", joinColumns = { @JoinColumn(name = "ID_ATENDIMENTO") }, inverseJoinColumns = { @JoinColumn(name = "ID_RECEPTOR") })
	private List<Receptor> receptores = new ArrayList<Receptor>();

	@Column(name = "DATA_COLETA")
	@Temporal(TemporalType.DATE)
	private Date dataColeta;

	@Column(name = "NUM_ORDEM")
	private String numOrdem;

	@Column(name = "IDENT_AC_IRREGULAR")
	private String identificacaoAcIrregular;

	@Column(name = "TESTE_COMPATIBILIDADE")
	private boolean testeCompatibilidade;

Deixe sua criteria mais Easy…
http://easycriteria.uaihebert.com/

Boa Sorte!

Obrigado, meu caro, vou testar.

Mas aí a questão, parece não ter nesse link o bendito distinct…
Como resolver o problema de obter registros duplicados na lista?
Obviamente deveria tê-los ao salvar cada tipo de lista, mas ao listar o usuário não precisa saber da existência delas…

Vi agora o link, vou testar daqui a pouco e te mostro o resultado.

Descartaria alguma lib já existente do Hibernate para usar isso?
Ou só faria o download da api já existente nesse site?

Só adicionar os Jar e correr pro abraço.

Obrigado, meu caro, vou testar.

Minha felicidade foi breve, parece não ser compatível com o que uso.
Parece requerer EntityManager e no caso, como uso Session do Hibernate, não adiantaria…