我做了一个在Oracle中运行但在Hibernate中出错的插入查询。
查询:
insert into tmptable
(dcol1, ncol1, ncol2)
select TRUNC(hie.timestamp), min(hie.eventid), count(1)
from eventtable hie
where hie.eventid >= 123
and hie.eventtype = 'NEW'
and hie.key like 'SYS_%'
and hie.timestamp between trunc(sysdate - 3) and
trunc(sysdate) + to_dsinterval('00 23:59:59')
group by TRUNC(hie.timestamp)
order by TRUNC(hie.timestamp);
从Spring MVC + Hibernate运行时,它出现以下错误:
HTTP Status 500 - Request processing failed;
nested exception is org.hibernate.hql.ast.QuerySyntaxException: unexpected token: 1 near line 1, column 113 [insert into tmp$genutil .....]
以下是插入数据的代码:
/* TMP_TABLE_INSERT member variable has above Insert query */
Query query = getSession().createQuery(TMP_TABLE_INSERT);
int result = query.executeUpdate();
System.out.println("Rows affected: " + result);
你能告诉我这里出了什么问题吗?
答案 0 :(得分:2)
createQuery
用于创建HQL查询,这是Hibernate的自定义查询语言,类似于SQL。
您想要createSQLQuery
。