我有一个mysql(SQL)批量查询:
START TRANSACTION;
UPDATE home SET currentSeq = 2 WHERE resId = '6hiuxhqkw4s1bta9a';
UPDATE home SET currentSeq = 4 WHERE resId = 'hpvihvzk0vainpkgg';
UPDATE home SET currentSeq = 6 WHERE resId = 'krfswe6wohjtugmtd';
UPDATE home SET currentSeq = 3 WHERE resId = 'tcybuiuulkju5wjre';
UPDATE home SET currentSeq = 7 WHERE resId = 'sgs4gr4v6aepuwdgq';
COMMIT;
上面的代码在MySQl 5.7终端上运行时工作正常但是,我试图从Hibernate和Hibernate运行相同的查询给出一个例外 - &#34;不支持嵌套查询&#34;。< / p>
我的Hibernate代码:
String queryToBeUpdate = "START TRANSACTION;\n" +
"\n" +
"UPDATE home SET currentSeq = 2 WHERE resId = '6hiuxhqkw4s1bta9a';\n" +
"UPDATE home SET currentSeq = 4 WHERE resId = 'hpvihvzk0vainpkgg';\n" +
"UPDATE home SET currentSeq = 6 WHERE resId = 'krfswe6wohjtugmtd';\n" +
"UPDATE home SET currentSeq = 3 WHERE resId = 'tcybuiuulkju5wjre';\n" +
"UPDATE home SET currentSeq = 7 WHERE resId = 'sgs4gr4v6aepuwdgq';\n" +
"\n" +
"COMMIT;";
Query q =sessionFactory.getCurrentSession().createSQLQuery(queryToBeUpdate);
q.executeUpdate();
答案 0 :(得分:0)
您可以像这样将UPDATE与CASE组合在一起:
var message = string.Empty;
using (var sr = new StreamReader("/Content/email.html"))
{
message = sr.ReadToEnd();
}
(作为批量更新查询)