0

我在执行以下休眠事务时收到以下错误: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();
 }
4

2 回答 2

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”等等。

于 2013-08-14T08:59:07.873 回答
0

如果您想将 Hibernate 与 SQL 查询(而不是 HQL 查询)一起使用,您可能必须使用不同的函数。

ssn.createSQLQuery(" ... ");

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

最大限度

于 2013-08-14T09:50:43.787 回答