0

以下の休止状態トランザクションの実行で次のエラーが発生します: 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();
 }
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

(HQL クエリではなく) SQL クエリで Hibernate を使用する場合は、別の関数を使用する必要がある場合があります。

ssn.createSQLQuery(" ... ");

私はこの機能を使ったことがないので、あなたにとって良い答えになることを願っています。

マックス

于 2013-08-14T09:50:43.787 に答える