Hibernate语法错误:预期的DOT

时间:2013-08-14 08:49:50

标签: java hibernate hql

我在执行以下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();
 }

2 个答案:

答案 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(" ... ");

我从未使用过这个功能,所以我希望这对你来说是一个很好的答案。

最高