我正在通过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
所以它认为我需要发送一个问号参数。
有什么想法发生这种情况吗?
由于
答案 0 :(得分:0)
你必须逃避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(&#34;:&#34;&#34;&#39; || UNISTR(&#39; \\ 003A&#39;)||&#39;&# 34);