wb_it_man 2021-06-09 09:35 采纳率: 66.7%
浏览 454
已采纳

insert语句报错,unexpected token: values

public void savesouveniridget(int playerId, int souvenirId, String issouvenirget) {
		// TODO Auto-generated method stub
		String hql= "insert into record_player_souvenir(playerId,souvenirId,souIsSeeAdv,issouvenirget)values('"+ playerId +"','"+ souvenirId +"','false','"+ issouvenirget +"')";
		System.out.println(hql);
		Session session = getSessionFactory().openSession();
		Query q = session.createQuery(hql);
		q.executeUpdate();
		
	}

报错信息:

[2021-06-09 09:33:21,169][ERROR][org.hibernate.hql.internal.ast.ErrorCounter.reportError(ErrorCounter.java:60)][Thread-10] - line 1:82: unexpected token: values - 
[2021-06-09 09:33:21,170][ERROR][org.hibernate.hql.internal.ast.ErrorCounter.reportError(ErrorCounter.java:55)][Thread-10] - line 1:82: unexpected token: values - 
line 1:82: unexpected token: values
    at org.hibernate.hql.internal.antlr.HqlBaseParser.selectFrom(HqlBaseParser.java:1037)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.queryRule(HqlBaseParser.java:730)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.selectStatement(HqlBaseParser.java:323)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.insertStatement(HqlBaseParser.java:355)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.statement(HqlBaseParser.java:192)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.parse(QueryTranslatorImpl.java:279)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:187)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:142)

 

 

换种写法,就报这个错误

 

insert into RecordPlayerSouvenir values('5115','0','false','true')
[2021-06-09 09:36:30,911][ERROR][org.hibernate.hql.internal.ast.ErrorCounter.reportError(ErrorCounter.java:60)][Thread-11] - line 1:34: expecting OPEN, found 'values' - 
[2021-06-09 09:36:30,912][ERROR][org.hibernate.hql.internal.ast.ErrorCounter.reportError(ErrorCounter.java:55)][Thread-11] - line 1:34: expecting OPEN, found 'values' - 
line 1:34: expecting OPEN, found 'values'
    at antlr.Parser.match(Parser.java:211)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.insertablePropertySpec(HqlBaseParser.java:833)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.intoClause(HqlBaseParser.java:815)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.insertStatement(HqlBaseParser.java:353)
    at org.hibernate.hql.internal.antlr.HqlBaseParser.statement(HqlBaseParser.java:192)

 

 

数据库就是四个字段,列名和values是可以对应的

 

 

Hibernate hql: 只支持用法 INSERT INTO ... SELECT ... FROM吗?

  • 写回答

1条回答 默认 最新

  • wb_it_man 2021-06-09 09:46
    关注

    hibernate面向对象查询,不支持insert

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据