Hibernate hql: 只支持用法 INSERT INTO ... SELECT ... FROM
2013-04-02 14:45
579 查看
下面是两个例子:
[java] view
plaincopyprint?
Query query=session.createQuery("insert into UserInfo(username,password,email) values(?,?,?)");
像上面的hql语句在编译的时候会报错,
[java] view
plaincopyprint?
Exception in thread "main" org.hibernate.hql.ast.QuerySyntaxException: expecting OPEN, found 'values' near line 1, column 22 [insert into Userinfo values('aaf')]
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:54)
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:47)
at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:82)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:284)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:182)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1651)
at com.xmetc.hibernate.test.HQL07.main(HQL07.java:23)
因此,
[java] view
plaincopyprint?
//String queryString3 = "insert into Userinfo values()";//不支持.
[java] view
plaincopyprint?
String queryString3 = "insert into Userinfo select ... from .. ";//支持.
[java] view
plaincopyprint?
Query query=session.createQuery("insert into UserInfo(username,password,email) values(?,?,?)");
像上面的hql语句在编译的时候会报错,
[java] view
plaincopyprint?
Exception in thread "main" org.hibernate.hql.ast.QuerySyntaxException: expecting OPEN, found 'values' near line 1, column 22 [insert into Userinfo values('aaf')]
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:54)
at org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:47)
at org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:82)
at org.hibernate.hql.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:284)
at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:182)
at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94)
at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1651)
at com.xmetc.hibernate.test.HQL07.main(HQL07.java:23)
因此,
[java] view
plaincopyprint?
//String queryString3 = "insert into Userinfo values()";//不支持.
[java] view
plaincopyprint?
String queryString3 = "insert into Userinfo select ... from .. ";//支持.
相关文章推荐
- select into from 和 insert into select 的用法和区别
- INSERT INTO SELECT FROM 的用法
- select into from 和 insert into select 的用法和区别
- select into from 和 insert into select 的用法和区别
- select into from 和 insert into select 的用法和区别(转)
- select into from 和 insert into select 的用法和区别
- select into from 和 insert into select 的用法和区别
- select into from 和 insert into select 的用法和区别
- select into from 和 insert into select 的用法和区别
- select into from 和 insert into select 的用法和区别
- 创建表结构相同的表,表结构相同的表之间复制数据,Oracle 中 insert into XXX select from 的用法
- SELECT INTO FROM 和 INSERT INTO SELECT 的用法和区别
- select into from 和 insert into select 的用法和区别
- Insert into select From 的用法
- select into from 提示 Undeclared variable.....错误的解决办法 && select into from 和 insert into select 的用法和区别
- select into from 和 insert into select 的用法和区别
- select into from 和 insert into select 的区别和用法及 SQL SELECT INTO 中Undeclared variable错误解决办法
- select into from 和 insert into select 的用法和区别
- select into from 和 insert into select 的用法
- insert into select 和select into from的用法和区别