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吗?