Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 休眠语法错误:应为点_Java_Hibernate_Hql - Fatal编程技术网

Java 休眠语法错误:应为点

Java 休眠语法错误:应为点,java,hibernate,hql,Java,Hibernate,Hql,我在执行下面的hibernate事务时遇到以下错误:需要点,在第1行第32列附近找到“=”[更新t\u凭证集状态=:状态,分配的\u引擎=:引擎,其中id=:id] 此外,t\u凭证是一个表,而不是一个对象。hibernate是否允许以这种方式使用,还是强制必须是一个对象 for(Credential credential: accountList){ Query query = ssn.createQuery("update t_credential set status =:status

我在执行下面的hibernate事务时遇到以下错误:
需要点,在第1行第32列附近找到“=”[更新t\u凭证集状态=:状态,分配的\u引擎=:引擎,其中id=:id]

此外,
t\u凭证
是一个表,而不是一个对象。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();
 }

请看这里的HQL示例:。似乎您需要引用一个对象:“更新t_凭证c”,然后更新它的字段,如:“set c.status=:status”等等。

如果您想在SQL查询(而不是HQL查询)中使用Hibernate,您可能需要使用不同的函数

ssn.createSQLQuery(" ... ");
我从来没有使用过这个函数,所以我希望这是一个很好的答案


Max

谢谢你解决了这个问题,不过我想t_凭证必须是一个映射对象,而不是一个表。