相关疑难解决方法(0)

在JPQL中将整数转换为字符串

我想要一个JPQL查询,可能看起来像:

    entityManager.createQuery("Select a.* from A a WHERE CAST(a.num AS TEXT) LIKE '%345%' ", A.class);
Run Code Online (Sandbox Code Playgroud)

其中a.num是整数。我想将此转换为String以使用LIKE标准。但是,上面的转换在JPQL中不起作用。关于如何实现这一点的任何想法?

jpa jpql jpa-2.0

5
推荐指数
3
解决办法
1万
查看次数

如何使用spring数据jpa查询jsonb列?

我在使用postgres 9.4实例获取此本机查询时遇到问题.

我的存储库有一个方法:

 @Query(value = "SELECT t.* " +
            "FROM my_table t " +
            "WHERE t.field_1 = ?1 " +
            "AND t.field_2 = 1 " +
            "AND t.field_3 IN ?2 " +
            "AND t.jsonb_field #>> '{key,subkey}' = ?3",
            nativeQuery = true)
    List<Entity> getEntities(String field1Value,
                                   Collection<Integer> field3Values,
                                   String jsonbFieldValue);
Run Code Online (Sandbox Code Playgroud)

但是日志显示了这个:

SELECT t.* FROM my_table t 
WHERE t.field_1 = ?1 
  AND t.field_2 = 1 
  AND t.field_3 IN ?2 
  AND t.jsonb_field ? '{key,subkey}' = ?3
Run Code Online (Sandbox Code Playgroud)

我得到这个例外:

内部异常:org.postgresql.util.PSQLException:没有为参数2指定值.

我在方法调用之前直接记录了参数,并且它们都是提供的.

我不确定为什么在日志中#>>显示?.我需要逃脱 …

postgresql spring jpa spring-data-jpa

4
推荐指数
3
解决办法
1万
查看次数

如何将 PSQLs ::json @&gt; ::json 转换为 jpa/jpql 谓词

假设我有一个看起来像这样的数据库表:

CREATE TABLE myTable(
   id BIGINT, 
   date TIMESTAMP, 
   user_ids JSONB 
);
Run Code Online (Sandbox Code Playgroud)

user_ids 区域 JSONB-ARRAY

让这个表的记录看起来像这样:

{
     "id":13,
     "date":"2019-01-25 11:03:57",
     "user_ids":[25, 661, 88]
};
Run Code Online (Sandbox Code Playgroud)

我需要查询 user_ids 包含 25 的所有记录。在 SQL 中,我可以使用以下选择语句来实现它:

SELECT * FROM myTable where user_ids::jsonb @> '[25]'::jsonb;
Run Code Online (Sandbox Code Playgroud)

现在我需要编写一个 JPA-Predicate 来呈现"user_ids::jsonb @> '[25]'::jsonb"一个休眠的可解析/可执行标准,然后我打算在session.createQuery()语句中使用它。简单来说,我需要知道如何将该 PSQL 代码段编写(user_ids::jsonb @> '[25]'::jsonb)为 HQL 表达式。

jpa hql predicate jpql

3
推荐指数
1
解决办法
413
查看次数

标签 统计

jpa ×3

jpql ×2

hql ×1

jpa-2.0 ×1

postgresql ×1

predicate ×1

spring ×1

spring-data-jpa ×1