使用spring jpa @query注释查询postgres jsonb

时间:2017-03-08 07:47:01

标签: postgresql spring-data-jpa

我已经创建了一个hibernate userTypeData,并成功地将我的对象(称为“data”)映射到postgres表中的jsonb数据类型。现在,我试图使用JpaRepository来查询该jsonb列,但没有成功。这是我用于查询的代码:

public interface GenieEntityDao extends JpaRepository<GenieEntity, Long>, QueryByExampleExecutor<GenieEntity> {

  @Query(value = "SELECT e FROM from genie_entities e WHERE e.data ->> 'temp' = '30'", nativeQuery = true)
    public List<GenieEntity> findByTempBiggerThan(String temp);

}

这是我得到的例外:

org.springframework.dao.InvalidDataAccessApiUsageException: Unknown parameter position: 1; nested exception is java.lang.IllegalArgumentException: Unknown parameter position: 1

有人知道如何使用@Query注释查询jsonb列吗?

1 个答案:

答案 0 :(得分:1)

答案:postgres jsonb列的查询语法可以像这样 - &gt;

@Query(value = "SELECT * FROM genie_entities WHERE data ->> ?1 > ?2", nativeQuery = true)
public List<GenieEntity> findByDataFilterBigger(String key, String value );

有效。 :)