(NOLOCK) ヒントを追加したかのようにこれらのクエリを実行する方法はありますか?
19824 次
3 に答える
9
これが本当に必要な場合は、次のようなことを行います。
session.connection().setTransactionIsolation(Connection.TRANSACTION_READ_UNCOMMITTED);
これはnolockと同じです。
それを行う前に、汚い読み取りをしたい場合は本当に慎重に考えてください。ほとんどの場合、人々はこれを行うのは、それが正しいことであるという理由ではなく、常に行ってきたことだからです。特に、これはキャッシングではうまく機能しません。
実際、このスレッドは少し問題になります。決定する前に注意深く読んでください。
于 2010-08-17T12:56:43.603 に答える
3
ネイティブに行けば、「with (nolock)」を実行できます。これは極端ですが、代わりにトランザクションの分離レベルを変更する場合は、むしろこれを行うことをお勧めします。
この例は MSSQL 用であることに注意してください。
String sqlQueryString = "SELECT * FROM my_classes_table WITH (nolock) WHERE columnName = :columnValue";
SQLQuery sqlQuery= session.createSQLQuery(sqlQueryString).addEntity(MyClass.class);
sqlQuery.setLong("columnValue", value);
List<MyClass> out = sqlQuery.list();
于 2015-10-22T16:17:56.180 に答える