2016-05-18 4 views
0

Hier ist meine Mutter Abfrage (leider kann ich es nicht verwenden als die native Abfrage nicht mit seitenwechselbar funktioniert)HQL-Abfrage mit param und seitenwechselbar Fehler „Parameter mit dieser Position [1] gab es nicht“

select * from stock_indicators si inner join stock st on si.stock_id = st.id where si.slope_simple_regression_10 > 1 and si.date = (select date from stock_details order by date desc limit 1) order by si.slope_simple_regression_10 desc 

Dies ist eine entsprechende HQL-Abfrage:

@Query(value = "from StockIndicators si join fetch si.stock where si.slopeSimpleRegression10Days > 1 and si.date = :date order by si.slopeSimpleRegression10Days desc", countQuery = "select count(si.stock) from StockIndicators si where si.slopeSimpleRegression10Days > 1") 
    Page<StockIndicators> findWithStocksIndicators10DaysTrendUp(Pageable pageable, @Param("date") LocalDate date); 

Und diese Abfrage nicht funktioniert, wird der folgende Fehler auftritt:

java.lang.IllegalArgumentException: Parameter with that position [1] did not exist 

Also, was ich bisher tat:

  1. änderte sich die Reihenfolge der Argumente (immer noch die gleichen Fehler)
  2. die Abfrage geändert Unterabfrage zu schließen, aber leider nicht HQL unterstützt keine Grenze
  3. das Datum geändert = : Datum Teil bis Datum =? 2 (immer noch der gleiche Fehler)

Können Sie mir dabei helfen?

Antwort

0

Endlich fand ich die Lösung. Es war mein blöder Fehler. Ich habe vergessen, Parameter zu CountQuery hinzuzufügen. Die korrekte Methode sollte wie folgt aussehen:

@Query(value = "from StockIndicators si join fetch si.stock where si.slopeSimpleRegression10Days > 1 and si.date = :date order by si.slopeSimpleRegression10Days desc", countQuery = "select count(si.stock) from StockIndicators si where si.slopeSimpleRegression10Days > 1 and si.date = :date ") 
    Page<StockIndicators> findWithStocksIndicators10DaysTrendUp(Pageable pageable, @Param("date") LocalDate date); 
Verwandte Themen