San*_*ani 5 hibernate spring-data-jpa spring-boot jsonb postgresql-9.4
我已经使用 vlad mihalcea 的依赖项将 json 值存储在表中。
表名:valuation_report JsonbColumn为parameters属性名在pojo中为params
能够获取单个对象的值,例如address =“Address1”
{"address":"Address1","nestedObj":{"firstName":"Sanjay"}}
Run Code Online (Sandbox Code Playgroud)
为了获取地址,我已经实现了规范和 @Overriden Predicate 方法,例如
@Override
public Predicate toPredicate(Root<ValuationReport> root, CriteriaQuery<?> query, CriteriaBuilder cb)
{
return cb.equal(cb.function("jsonb_extract_path_text", String.class,root.<String>.get("params"),cb.literal(this.locale)), this.fieldToSearch);
}
Run Code Online (Sandbox Code Playgroud)
但现在我想找到 NestedObj 的值,就像nestedObj 的名字是 Sanjay 一样。
{"nestedObj":{"firstName":"Sanjay"}}
Run Code Online (Sandbox Code Playgroud)
请帮助我,我用手机写了所有这些,很抱歉问题格式不正确。
小智 3
我已经使用 @Query 注释完成了此操作,但仍然有一种方法可以处理条件。我将显示我的查询来执行此操作
@Query(value = "select vr FROM ValuationReport vr where jsonb_extract_path_text(vr.params,:subParam ,:key)=:value")
List<ValuationReportJSON> getEntities(@Param("subParam") String subParam,@Param("key") String key,@Param("value") String value);
Run Code Online (Sandbox Code Playgroud)
希望这有效。
归档时间: |
|
查看次数: |
2558 次 |
最近记录: |