我正在使用Spring Data Rest,我的Repository
扩展了JpaRepository
,我想用@Query
创建一个自定义查询。
我的方法参数是一个@RequestParameter
,我想用它作为查询的参数:
@Query("SELECT u FROM User u WHERE u.name = :search")
List<User> findBySearch(@RequestParam("search") @Param("search") String search);
字符串
我可以使用@RequestParam
作为查询的参数吗?
1条答案
按热度按时间yzxexxkh1#
参数是在功能块中定义的变量。因此,它基本上是在我们需要向特定功能块传递值时使用的。
@RequestParam
,您也必须在调用此方法时发送此值。我不确定使用这个来获得价值是你想要的。
可以尝试直接获取请求参数:
Spring支持在使用
@Query
定义的手动定义的查询中使用受限SpEL模板表达式。您可以创建自定义
EvaluationContextExtension
来使用request parameters directly in @Query.字符串
在query中的用法应该是这样的:
型
您可以调用此存储库方法而不发送任何参数。
如果您的http请求有一个
search
参数 (例如:http://localhost:8080/test?search=foobar
) 您根据此参数的值创建一个查询。