我在执行以下hibernate事务时遇到以下错误:expecting DOT, found '=' near line 1, column 32 [update t_credential set status = :status , assigned_engine = :engine where id = :id]
。
此外,t_credential
是一个表而不是一个对象。休眠是允许使用这种方式还是强制必须成为对象?
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();
}
答案 0 :(得分:1)
请查看此处的HQL示例:http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/batch.html#batch-direct。看来你需要引用一个对象:“update t_credential c”,然后更新它的字段,如:“set c.status =:status”等等。
答案 1 :(得分:0)
如果你想使用Hibernate和SQL Query(而不是HQL查询),你可能需要使用不同的函数。
ssn.createSQLQuery(" ... ");
我从未使用过这个功能,所以我希望这对你来说是一个很好的答案。
最高