我正在通过 hibernate 创建一个 sql 查询。我有一个选择查询;
SELECT IFNULL(DATE_FORMAT(q.create_date, '%Y-%m-%d %H:%i'), ' ') as createDate ..
但是 hibernate 将该查询转换为
SELECT IFNULL(DATE_FORMAT(q.create_date, '%Y-%m-%d %H?'), ' ') as createDate
所以它认为我需要发送一个问号参数。
知道为什么会这样吗?
谢谢
最佳答案
你必须在 Hibernate 中转义 :
。
引用这篇文章 - Using Hibernate query : colon gets treated as parameter / escaping colon
您可以通过将查询更改为:
SELECT IFNULL(DATE_FORMAT(q.create_date, '%Y-%m-%d %H\\:%i'), ' ') as createDate ..
更新:
或者,您可以替换为这篇文章中提到的 unicode 字符 - how to escape colon in HQL
q=q.replaceAll(":","'||unistr('\\003A')||'");
关于java - Hibernate 将日期格式转换为问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33827916/