Hibernate将日期格式转换为问号

时间:2015-11-20 13:27:31

标签: java mysql sql hibernate

我正在通过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

所以它认为我需要发送一个问号参数。

有什么想法发生这种情况吗?

由于

1 个答案:

答案 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);