Zapytanie z sort () i limit () w interfejsie Spring Repository
Jestem nowym użytkownikiem Spring Data z MongoDB i chciałbym mieć automatycznie generowaną metodę zapytania wewnątrz mojego interfejsu rozszerzenia MongoRepository, która wymaga filtrowania, sortowania i ograniczania.
Zapytanie wygląda tak:
<code>// 'created' is the field I need to sort against find({state:'ACTIVE'}).sort({created:-1}).limit(1) </code>
Interfejs repozytorium wygląda tak:
<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>
Wiem, że można dodać argument Sort do metody kwerendy, aby uzyskać sortowanie, ale problemem jest ograniczenie wyników tylko do jednego obiektu. Czy jest to możliwe bez konieczności pisania niestandardowego JobRepositoryImpl?
Dzięki
Edytować:
Przykład tego, czego szukam:
<code>@Query("{ state:'ACTIVE', $orderby: {created:-1}, $limit:1 }") Job findOneActiveOldest(); </code>
lub
<code>@Query("{ state:'ACTIVE' }") @Sort("{ created:-1 }") @Limit(1) Job findOneActiveOldest(); </code>
Ale to oczywiście nie działa :(