Gui*_*art 6 java postgresql json jpa hibernate-native-query
我正在尝试使此查询在JPA中起作用:
SELECT * FROM contrat WHERE contrat_json @> '{"nom" :"hever"}';
Run Code Online (Sandbox Code Playgroud)
它可以完美地工作,postgresql但是当我将其与JPA集成时,会出现以下错误:
该位置[1]的参数不存在
我的代码:
@Transactional
@Query(nativeQuery = true,value = "select p from Contrat p where contrat_json @> '{\"nom\":\":nom\"}'")
public List<Contrat> findByNomRestrict(@Param("nom") String nom);
Run Code Online (Sandbox Code Playgroud)
我认为@>尽管进行了本地查询仍无法识别,您有想法吗?
使用 PostgreSQL 和 JSON,您可能会遇到 needing?或其他奇怪的运算符,因此最好只使用它们的等效函数。psql您可以像这样在控制台中查找它们\doS+ @>。
正如参数所示,您的查询不是本机的。
select p from Contrat p where...
Run Code Online (Sandbox Code Playgroud)
仅当它到达数据库时才会给您一个错误。
尝试类似的东西
@Query(nativeQuery = true, value = "select * from Contrat where jsonb_contains(contrat_json, :nom )")
Run Code Online (Sandbox Code Playgroud)
并"{\"nom\":\"" + param + "\"}"作为参数绑定
| 归档时间: |
|
| 查看次数: |
6352 次 |
| 最近记录: |