我的应用程序中有一个带有命名参数的Spring Repository @Query:
@Query("SELECT p FROM :person")
Page<Person> find(@Param("table") String table, Pageable pageable);
一个Controller来处理请求/查询表(:table)
@RequestMapping(value = "/search/{table}", produces="application/json", method = RequestMethod.GET)
public Page<Person> searchTables(@PathVariable String table) {
return Page<Person> list = repo.find(table, new PageRequest(1, 20));
}
存储库和请求映射工作正常,所以我省略了这些,但我得到以下异常:
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: : near line 1, column 15 [SELECT p FROM :table]
根据Spring文档,@Query
命名参数的前缀是:
,因此我不确定为什么会出现此错误。
来自文档:
...您可以使用@Param注释为方法参数提供具体的参数 在查询中命名并绑定名称。
有什么想法吗?
答案 0 :(得分:0)
请看###entityName} link(spring-data):http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query.spel-expressions。