Ich verwende Spring Datenrest und versuche, die Abfrage für zwei der überladenen findAll-Methoden mit @Query anpassen. Allerdings, wenn ich dies versuchen, erhalte ich diesen Fehler:Anpassen der Abfrage für Paging und Sortieren im Frühjahr Datenrest
java.lang.IllegalStateException: Ambiguous search mapping detected. Both public abstract org.springframework.data.domain.Page courses.CourseRepository.findAll(org.springframework.data.domain.Pageable) and public abstract java.lang.Iterable courses.CourseRepository.findAll(org.springframework.data.domain.Sort) are mapped to /findAll! Tweak configuration to get to unambiguous paths!
Wenn diese Methoden die URL aufgerufen werden nicht enthalten/findAll durch Konvention. Eine URL für das Abrufen von unsortierten Kurse (aber unter Verwendung von Paging) ist
und Sortierung ist
Hier ist der relevante Code, der recht einfach ist:
public interface CourseRepository extends PagingAndSortingRepository<Course, Long> {
@Override
@Query("SELECT c FROM Course c WHERE c.visible = 'Yes'")
Page<Course> findAll(Pageable pageable);
@Override
@Query("SELECT c FROM Course c WHERE c.visible = 'Yes'")
Iterable<Course> findAll(Sort sort);
}
ich auch habe versucht, eine @namedQuery für die Course-Entität mit derselben Fehlermeldung zu verwenden.
EDIT:
ich entdeckt habe, dass die findAll (Pageable seitenwechselbar) Methode ‚eingebaute‘ hat Sortierung, aber es die Ergebnisse nicht sortieren. Wenn ich die folgende URL anklicke und versuche, nach Titel zu sortieren, sind die Ergebnisse eindeutig nicht nach Titel sortiert. Ohne die benutzerdefinierte @Query werden die Ergebnisse jedoch sortiert.
Haben Sie nur Probleme beim Sortieren? können Sie den Codeteil für den Aufruf der Repository-Methode Seite findAll (Auslagerungsdatei) senden. Eigentlich wo würden Sie zum Sortieren konfigurieren. –
Shaan
@PremkumarMathivanan, da es Spring Data Rest der Aufruf von findAll ist hinter den Kulissen. Ich habe keinen spezifischen Code, der diese Methode aufruft. – acvcu
Kannst du bestätigen, habe ich dir in der Nähe geantwortet? – Shaan