java Hibernate语法错误:应为点
我在执行下面的hibernate事务时遇到以下错误:expecting DOT, found '=' near line 1, column 32 [update t_credential set status = :status , assigned_engine = :engine where id = :id]
另外,t_credential
是一个表,而不是一个对象。hibernate是否允许以这种方式使用,还是强制必须是一个对象
for(Credential credential: accountList){
Query query = ssn.createQuery("update t_credential set status =:status , assigned_engine = :engine where id = :id");
query.setParameter("status", status);
query.setParameter("engine", assignedTo);
query.setParameter("id", String.valueOf(credential.getId()));
int result = query.executeUpate();
}
# 1 楼答案
如果要将Hibernate与SQL查询(而不是HQL查询)一起使用,可能需要使用不同的函数
我从来没有使用过这个函数,所以我希望这是一个很好的答案
马克斯
# 2 楼答案
看看这里的HQL示例:http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/batch.html#batch-direct。似乎您需要引用一个对象:“updatet_credential c”,然后更新它的字段,比如:“setc.status=:status”等等