6

適切なセクションであることを願っています。このコードに問題があります

Transaction transaction = session.beginTransaction(); 
Query query = session.createQuery("update database set floop= :ctrl1" +" where ctrl= :ctrl2 ").setMaxResults(2); 
query.setMaxResults(2);
query.setParameter("ctrl1",3);
query.setParameter("ctrl2", 5);

最初の2つだけを更新するように依頼するsetMaxResults(2)と、彼はすべてのレコードを更新するので、何が悪いのですか?? 助けてくれてありがとう

を使おうと思ったsession.createSQLQueryのですが、やり方がわかりません。

4

5 に答える 5

1

query.setMaxResults(2);はクエリに使用され、 ではselection無視されinsertion/updationます。クエリに使用するとselection、結果として 2 つのレコードが得られます。

于 2012-09-05T15:37:18.380 に答える
1

setMaxResults影響を受ける行の数ではなく、クエリによって返される結果の数を制限します。

限定された行セットのみを更新する場合は、これらの行を where 条件内で指定する必要があります。更新される行の数に厳しい制限を設定しても、どの行が更新されるかを知る方法がないため、あまり意味がありません。

于 2012-09-05T15:29:49.750 に答える