【问题标题】:how to escape colon in HQL如何在 HQL 中转义冒号
【发布时间】:2013-09-04 13:18:14
【问题描述】:

我的查询条件部分如下:

...
where foo.bar like '%:%'

查询将执行但没有结果。我认为这是因为冒号,因为它是 HQL 中的保留字符。那么如何在不将 : 作为参数发送到我的查询的情况下转义它。

我已经使用了 '%\:%' 和 '%\\:%' 没有成功。

【问题讨论】:

  • 试试这个 [:] peraphs 取决于 DBMS
  • 您确定您的表中有一个包含:foo.bar 吗?我希望这个查询能够很好地执行,而且看起来确实如此。如果这个字符有问题,它可能会抛出异常而不是运行。打开 SQL 日志并查看正在执行的 SQL 查询。
  • bar 实际上是电子邮件的主题。假设主题是“FWD:test”,如果我将 'FWD' 或 'test' 放在 %s 之间,我将得到结果,但使用冒号将没有输出。
  • 我找到了解决办法:q=q.replaceAll(":","'||unistr('\\\\003A')||'");

标签: hibernate escaping char hql colon


【解决方案1】:

我找到了解决办法:q=q.replaceAll(":","'||unistr('\\003A')||'");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 2012-05-28
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多