我得到以下错误
org.hibernate.hql.internal.ast.QuerySyntaxException:意外的令牌值:第1行第161列附近的值。
[insert into shop_information(storeName, ownername, license, email, dlnumber, gst, pan, pincode, phonenumber, mobile, fax, cst, phone, district, state, country) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]
答案 0 :(得分:0)
你必须使用
session.createSQLQuery(SQL_QUERY);
不
session.createQuery(SQL_QUERY);
HQL仅支持从另一个表插入。
e.g。
INSERT INTO Entity properties_list select_statement.
如果您不想使用像
这样的标准插入语句INSERT INTO Table properties_list values ( :vals)
你需要
session.createSQLQuery(SQL_QUERY)
编辑,回答评论:
我认为参数是基于0的,所以尝试从0开始参数:
query.setParameter(0,storeName);
query.setParameter(1,ownerName);
etc...
但更好的方法是使用命名参数:
sessionFactory.getCurrentSession()
.createSQLQuery("update table set field = 1 where id = :id")
.setParameter("id", someId)
.executeUpdate();