¿Filtrado de objetos en repositorio o servicio?

Quiero obtener una lista de objetos basada en algunos parámetros. ¿Pertenece el objeto a una categoría en particular, tiene la propiedad x y z, etc. He creado un repositorio bastante simple que obtiene los objetos por id. Si quiero una lista de objetos basada en diferentes parámetros y criterios, ¿agregaría un método en el repositorio que lo haga o tendría un método en la capa de servicio que se siga ejecutando hasta que tenga una lista de objetos que se ajuste a los criterios? ¿Simplemente usaría el método get by id del repositorio y lo compararía con muchos criterios?