2014-09-22 16 views
8

this sorusunun farkındayım, ancak org.springframework.data:spring-data-jpa:1.7.0.RELEASE kullanarak hala aynı sorunu yaşıyorum (Either use @Param on all parameters except Pageable and Sort typed once, or none at all!). Benim sınıftır:Bir bahar verisinde Pageable ve @Param JpaRepository yöntemi sorunu [2]

public interface BalanceHistoryRepository extends JpaRepository<BalanceHistory, Long> { 
    @Query("select bh from BalanceHistory bh where bh.account.id = :idAccount") 
    public BalanceHistory findCurrentBalanceByAccountNumber(PageRequest pageCriteira, @Param("idAccount") long idAccount); 
} 

Düzenleme

Çağrı:

Pageable page = new PageRequest(0, 1, Sort.Direction.DESC, "date"); 
     BalanceHistory bh = balanceHistoryRepository.findCurrentBalanceByAccountNumber(1,page); 

Yöntem:

@Query("select bh from BalanceHistory bh where bh.account.id = :idAccount") 
public BalanceHistory findCurrentBalanceByAccountNumber(@Param("idAccount") long idAccount, Pageable pageCriteira); 
+0

böcek yay veri Commons içindedir. –

+0

Bu java.lang çocuklar chill out .... – muttonUp

cevap

14

yerine PageRequest ait Pageable kullandığınızdan emin olun bu yüzden ilk parametre olduğunu bağlı olmamak gerçek sorguya. Ayrıca, çoğunlukla birden çok sonuç döndüreceğiniz için dönüş türünü Page veya List olarak değiştirmeniz gerekir.

public interface BalanceHistoryRepository extends CrudRepository<BalanceHistory, Long> { 

    @Query("select bh from BalanceHistory bh where bh.account.id = :idAccount") 
    Page<BalanceHistory> findCurrentBalanceByAccountNumber(@Param("idAccount") long idAccount, Pageable pageable); 
} 

Bu, hile yapmalıdır. genellikle onlar gerçekten gerekirse sadece maruz olmalıdır mağaza özgü API maruz olarak dükkanını belirli arabirimleri uzatmak değilöneririz unutmayın. Eğer yardımcı olmayacaktır yay veri commons yükseltme yay veri JPA eski bir sürümü bir bağımlılık varsa

+0

Girdiğiniz için teşekkürler! Bu değişiklik bir java.lang.IllegalStateException verir: Yöntem aşağıdaki dönüş türlerinden birine sahip olmalıdır! [interface org.springframework.data.domain.Slice, interface org.springframework.data.domain.Page, interface java.util.List] 'istisnası. Benim düzenlemeye bakın lütfen :) –

+3

İade tipinizi düzeltin. Bir "Pageable" yazdığınızda sonuç, sonuçların bir sonucu olmamalıdır. –

+0

@Oliver: parametre yapar Neden 'Pageable' olmak zorunda ve ben bir' söz konusu belirtilen bu istisna atar PageRequest' param mage. –

İlgili konular