有没有办法强制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以相同的方式发送语句?
答案 0 :(得分:1)
我找到了实现这一目标的方法。
String statementText = "SET DEADLOCK_PRIORITY LOW;";
Statement s = session.connection().createStatement();
s.execute(statementText);
但是,connection()是“已弃用并计划在Hibernate 4.x中删除”(已讨论here)