Заставить Hibernate не использовать sp_execute для не-запроса - PullRequest
0 голосов
/ 21 декабря 2011

Есть ли способ заставить Hibernate не использовать sp_execute?

Рассмотрим этот код

String queryString = "SET DEADLOCK_PRIORITY LOW;";
SQLQuery query = session.createSQLQuery(queryString);
return query.executeUpdate();

Превращается в sp_prepare , затем sp_execute и это противоречит цели: после выполнения этого оператора приоритет взаимоблокировки сеанса возвращается к NORMAL

. В .NET следующий код будет выполнять оператор непосредственно, а приоритет для сеанса останется НИЗКИМ (по желанию)

command = new SqlCommand("SET DEADLOCK_PRIORITY LOW", _Connection);
command.ExecuteNonQuery();

Как заставить Hibernate отправлять оператор таким же образом?

1 Ответ

1 голос
/ 22 декабря 2011

Я нашел способ сделать это.

String statementText = "SET DEADLOCK_PRIORITY LOW;";
Statement s = session.connection().createStatement();
s.execute(statementText);

Однако connection () устарел и * удален и запланирован для удаления в Hibernate 4.x"(обсуждается здесь ))

...