2016-03-23 15 views
2

Yay verileri geri kalanını kullanıyorum ve sorgusu, @ Query'yi kullanarak, aşırı yüklenen findAll yöntemlerinden ikisi için özelleştirmeye çalışıyorum. Kongre tarafındanYay ve veri sorgusu için sorguyu özelleştir Veri baharında kalan

bu yöntemler içermez URL denir

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!

/findall: Bu girişimi Ancak, bu hatayı alırsınız. sıralanmamış kursları alınırken (ama paging kullanarak) için bir URL

http://localhost:8080/v1/courses

ve sıralama Burada

http://localhost:8080/v1/courses?sort=title

oldukça basittir ilgili kod, konusu olmasıdır:

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); 
} 

Ben de ettik Kurs nesnesinde aynı hata iletisiyle bir @NamedQuery kullanılmaya çalışıldı.

DÜZENLEME: findAll (sayfalanabilir sayfalanabilir) yöntemi, 'yerleşik' Sıralama ancak sonuç sıralamak değil ettiğini keşfettiler

. Aşağıdaki URL'ye bastığımda ve başlığa göre sıralama yapmaya çalıştığımda, sonuçlar açıkça başlıklara göre sıralanmaz. Ancak, özel @Query olmadan sonuçlar sıralanır.

http://localhost:8080/v1/courses?sort=title

+0

Sadece sıralama için sorun var mı? depo yöntemini çağırmak için kod parçasını gönderebilirsiniz Page findAll (Pageable pageable); Aslında sıralama için konfigüre edeceğiniz yer. – Shaan

+0

@PremkumarMathivanan, yaylı veri olduğu için aranacak. Bu yöntemi çağıran belirli bir kodum yok. – acvcu

+0

Size yakın bir cevap verdiğimi onaylayabilir misiniz? – Shaan

cevap

0

Bahar verilerinin findall yöntemini aşırı yüklemeyi deniyorsunuz. Bu sadece CustomRepository tarafından sağlanabilir. CustomRepository oluşturma konusunda kılavuzluk etmeniz için yararlı link.

CustomRepository-Springdata'nın gereksinim duyduğu yöntemin ayarlanması için özel yöntemlerle bir sınıf tanımlayabilirsiniz.

: Eski Bahar sürümünü kullanıyorsanız

Bahar aynı

İlgili konular