JpaRepository native query not detecting parameters

Harikrishnan

I am trying to write a native query in my SpringBoot application to get the closest location to any given coordinate. Following is the JpaRepository for the same:

@Repository
public interface OfferRepository extends JpaRepository<Offer, Long> {
    @Query(value = "SELECT *, MIN(6371000 * acos( cos( radians(:latitude) ) * cos( radians( dest.latitude ) ) * cos( radians( dest.longitude ) - radians(:longitude) ) + sin( radians(:latitude) ) * sin( radians( dest.latitude ) ))) as  distance FROM offer dest GROUP BY dest.id having MIN(distance)",
            nativeQuery = true)
    Tuple getClosestOffer(double latitude, double longitude);
}

The problem I am facing it that the passed latitude and longitude are not getting set in the query string. Instead they are replaced with question marks as seen below:

SELECT *, MIN(6371000 * acos( cos( radians(?) ) * cos( radians( dest.latitude ) ) * cos( radians( dest.longitude ) - radians(?) ) + sin( radians(?) ) * sin( radians( dest.latitude ) ))) as  distance FROM offer dest GROUP BY dest.id having MIN(distance)

I even tried with numbered parameters, but with same result. What am I doing wrong here? How to solve this?

Dirk Deyne

You can use Named Parameters using the @Param annotation

public interface OfferRepository extends JpaRepository<Offer, Long> {
    @Query(value = "SELECT *, MIN(6371000 * acos( cos( radians(:latitude) ) * cos( radians( dest.latitude ) ) * cos( radians( dest.longitude ) - radians(:longitude) ) + sin( radians(:latitude) ) * sin( radians( dest.latitude ) ))) as  distance FROM offer dest GROUP BY dest.id having MIN(distance)",
            nativeQuery = true)
    Tuple getClosestOffer(@Param("latitude") double latitude, @Param("longitude") double longitude);
}

or use Indexed Parameters: ?1 ?2 in you jpql

public interface OfferRepository extends JpaRepository<Offer, Long> {
    @Query(value = "SELECT *, MIN(6371000 * acos( cos( radians(?1) ) * cos( radians( dest.latitude ) ) * cos( radians( dest.longitude ) - radians(?2) ) + sin( radians(?1) ) * sin( radians( dest.latitude ) ))) as  distance FROM offer dest GROUP BY dest.id having MIN(distance)",
            nativeQuery = true)
    Tuple getClosestOffer(double latitude, double longitude);
}

if you want to show the resolved parameters in your logging just set the logging level of org.hibernate.type to trace

application.properties :

spring.jpa.show-sql=true
logging.level.org.hibernate.type=trace

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

How to pass parameters in a native query JPA

分類Dev

How nested FETCH JOIN works on Hibernate using JpaRepository and @Query annotation?

分類Dev

Parse query parameters with regexp

分類Dev

Use parameters for MySqlCommand query

分類Dev

Jhipster-JpaRepository "principal.username" @ Query-org.springframework.expression.spel.SpelEvaluationException

分類Dev

Jhipster-JpaRepository "principal.username" @ Query-org.springframework.expression.spel.SpelEvaluationException

分類Dev

Laravel Eloquent query with optional parameters

分類Dev

301 redirect with query parameters and ~ in URL

分類Dev

RSQLite parametrised query with vectors as parameters

分類Dev

Limit amount of parameters in query string

分類Dev

Calculated query with parameters in HANA/CrystalReports

分類Dev

Can I skip query parameters?

分類Dev

Query parameters with Impala ODBC driver

分類Dev

(Spring / JpaRepository)動的@ Query、JpaRepositoryのメソッドをBaseEntityRepositoryからSubEntityRepositoryに継承する場合

分類Dev

JpaRepository:NoSuchBeanDefinitionException

分類Dev

How to pass pageable for native query?

分類Dev

JpaRepository のカスタム @Query。赤色で表示されたテーブル名

分類Dev

JpaRepositoryインターフェースでの@queryの設定(サブクエリ)

分類Dev

SpringMVC: URL parameter after query parameters

分類Dev

Passing list of enum values as HTTP query parameters

分類Dev

How do I get query parameters in the URL

分類Dev

Passing list of enum values as HTTP query parameters

分類Dev

Preserve query parameters in react-router

分類Dev

How to implement query string parameters for RESTful APIs

分類Dev

Regex for URL rewrite with optional query string parameters

分類Dev

Firestore query with multiple where clauses based on parameters

分類Dev

Http Query Parameters in UTC in AspNet Core

分類Dev

Dynamic database requests without query string parameters

分類Dev

How to implement query parameters in Postman with mongoose

Related 関連記事

  1. 1

    How to pass parameters in a native query JPA

  2. 2

    How nested FETCH JOIN works on Hibernate using JpaRepository and @Query annotation?

  3. 3

    Parse query parameters with regexp

  4. 4

    Use parameters for MySqlCommand query

  5. 5

    Jhipster-JpaRepository "principal.username" @ Query-org.springframework.expression.spel.SpelEvaluationException

  6. 6

    Jhipster-JpaRepository "principal.username" @ Query-org.springframework.expression.spel.SpelEvaluationException

  7. 7

    Laravel Eloquent query with optional parameters

  8. 8

    301 redirect with query parameters and ~ in URL

  9. 9

    RSQLite parametrised query with vectors as parameters

  10. 10

    Limit amount of parameters in query string

  11. 11

    Calculated query with parameters in HANA/CrystalReports

  12. 12

    Can I skip query parameters?

  13. 13

    Query parameters with Impala ODBC driver

  14. 14

    (Spring / JpaRepository)動的@ Query、JpaRepositoryのメソッドをBaseEntityRepositoryからSubEntityRepositoryに継承する場合

  15. 15

    JpaRepository:NoSuchBeanDefinitionException

  16. 16

    How to pass pageable for native query?

  17. 17

    JpaRepository のカスタム @Query。赤色で表示されたテーブル名

  18. 18

    JpaRepositoryインターフェースでの@queryの設定(サブクエリ)

  19. 19

    SpringMVC: URL parameter after query parameters

  20. 20

    Passing list of enum values as HTTP query parameters

  21. 21

    How do I get query parameters in the URL

  22. 22

    Passing list of enum values as HTTP query parameters

  23. 23

    Preserve query parameters in react-router

  24. 24

    How to implement query string parameters for RESTful APIs

  25. 25

    Regex for URL rewrite with optional query string parameters

  26. 26

    Firestore query with multiple where clauses based on parameters

  27. 27

    Http Query Parameters in UTC in AspNet Core

  28. 28

    Dynamic database requests without query string parameters

  29. 29

    How to implement query parameters in Postman with mongoose

ホットタグ

アーカイブ