Consulta con sort () y limit () en la interfaz de Spring Repository
Soy nuevo en Spring Data con MongoDB y me gustaría tener un método de consulta generado automágicamente dentro de mi interfaz de extensión MongoRepository que requiere filtrado, clasificación y limitación.
La consulta se ve así:
<code>// 'created' is the field I need to sort against find({state:'ACTIVE'}).sort({created:-1}).limit(1) </code>
La interfaz del repositorio se ve así:
<code>public interface JobRepository extends MongoRepository<Job, String> { @Query("{ state: 'ACTIVE', userId: ?0 }") List<Job> findActiveByUserId(String userId); // The next line is the problem, it wont work since // it's not in the format @Query expects @Query("find({state:'ACTIVE'}).sort({created:-1}).limit(1)") Job findOneActiveOldest(); ... } </code>
Sé que se puede agregar un argumento de clasificación a un método de consulta para obtener la clasificación, pero el problema es limitar los resultados a un solo objeto. ¿Se puede hacer esto sin tener que escribir un JobRepositoryImpl personalizado?
Gracias
Editar:
Ejemplo de lo que estoy buscando:
<code>@Query("{ state:'ACTIVE', $orderby: {created:-1}, $limit:1 }") Job findOneActiveOldest(); </code>
o
<code>@Query("{ state:'ACTIVE' }") @Sort("{ created:-1 }") @Limit(1) Job findOneActiveOldest(); </code>
Pero esto obviamente no funciona :(