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

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

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

报告相同问题?