為了弄清楚我的自定義請求為什么不作業,我已經花了幾個小時。
我想我明白了:引數在請求中不適用-> Jpa用's_polygoneDepartement'來做請求,而不是用值來替換它,但我不明白為什么。
@Query(value = " select * from poi where ST_Intersects(geog ,
"
" ST_GeomFromGeoJSON(' )
"
" :s_polygoneDepartement
"
" ')
"
" ) = 'true'"。
,
countQuery = " select count(*) from poi where ST_Intersects(geog ,
"
" ST_GeomFromGeoJSON(' )
"
" :s_polygoneDepartement
"
" ')
"
" ) = 'true' ",
nativeQuery = true)
Page<Poi> findAllByNomDepartementFr(@Param("s_polygoneDepartement") String s_polygoneDepartement, Pageable pageable) 。
我認為這是因為:s_polygoneDepartement不接近"=",但在這種情況下,如何讓它理解它應該用收到的值替換:s_polygoneDepartement?
謝謝你
uj5u.com熱心網友回復:
對我來說,你的換行()似乎不需要。
)是不需要的。因為你把你的引數包裝成'
{}
Spring可能會把它當作字串,而不是它可以用給定的引數來替換的東西。
嘗試使用:
@Query(value = "select * from poi where ST_Intersects(geog, ST_GeomFromGeoJSON(:s_polygoneDepartement)) = 'true'" /span>,
countQuery = "select count(*) from poi where ST_Intersects(geog, ST_GeomFromGeoJSON(:s_polygoneDepartement)) = 'true' ",
nativeQuery = true)
Page<Poi> findAllByNomDepartementFr(@Param("s_polygoneDepartement") String s_polygoneDepartement, Pageable pageable) 。
另外,你可以嘗試使用索引查詢引數而不是命名引數。然后你可以放棄@Parameter()并在查詢中使用?1代替:s_polygoneDepartement。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/309827.html
標籤:
