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;