0

有没有办法强制 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 以相同的方式发送语句?

4

1 回答 1

1

我找到了一种方法来实现这一点。

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

但是,connection() 已“被弃用并计划在 Hibernate 4.x 中删除”(在此处讨论)

于 2011-12-22T18:03:50.080 回答