【问题标题】:HQL .setParameter inside single quotes单引号内的 HQL .setParameter
【发布时间】:2014-11-27 22:41:14
【问题描述】:

我有一个 HQL 查询:

select
  date_trunc('day', s.date),
  sum(s.price)
from Sale as s
group by date_trunc('day', s.date)

现在我尝试参数化分区间隔(“天”):

String interval = "'month'"
createQuery("select date_trunc(:partitionBy, s.date) from Sale as s group by date_trunc(:partitionBy, s.date)")
.setParameter("seller", seller)
.setParameter("partitionBy", interval)

它不起作用。

如何在单引号内传递字符串参数?

我使用 PostgreSQL 9.3。

【问题讨论】:

  • 我认为你不需要单引号,因为如果数据库表中的对应列是 char,hibernate 会为你添加它

标签: java sql hibernate postgresql hql


【解决方案1】:

你可以试试这个:

String interval = "month";
...
date_trunc('''' || :partitionBy || '''', s.date)

(两个单引号是单引号的转义序列,||是连接运算符)

但我认为这里根本不需要单引号。

【讨论】:

  • 为什么这里引用了 4 个?不应该是 3 吗?
猜你喜欢
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-13
  • 2018-06-13
  • 1970-01-01
  • 2016-12-17
  • 2013-02-05
相关资源
最近更新 更多