【发布时间】:2012-08-22 15:27:50
【问题描述】:
您好,我有以下查询:
String hql = "UPDATE Raumreservierung as rr " +
"set VON = :begin " +
"where VON = :Von " +
"and Raum_ID IN (SELECT r.ID FROM Raum r " +
"inner join r.Panel as pl with pl.ID = " + clientId + "";
IQuery query = CurrentSession.CreateQuery(hql);
query.SetParameter("begin", DateTime.Now);
query.SetParameter("Von", v.Von);
int result = query.ExecuteUpdate();
查询对“VON”进行更新。这工作正常,但查询的其余部分不起作用。查询的其余部分似乎不起作用。但没有得到任何错误。
对于查询的其余部分,我指的是查询的以下部分:
"and Raum_ID IN (SELECT r.ID FROM Raum r " +
"inner join r.Panel as pl with pl.ID = " + clientId + "";
因为它应该只在“VON”列上发生更新,例如当“clientId”为“AT2”时 但是那部分不起作用。因为更新也发生在其他 clientId 上。
【问题讨论】:
-
“查询对 VON 进行更新”是什么意思 - 它会更新名为 VON 的字段吗?它是否更新了正确数量(子集)的记录?哪个“查询的其余部分不起作用”?
-
你真的应该更好地解释这一点。什么是“查询的其余部分”?
where部分不正确?此外,您还有一个附加参数集 - “Bis”。上面的 HQL 查询中没有提到。 -
查看发送到您的数据库 (nhprof.com) 的确切查询并在 SQL Server Manager Studio 中尝试(如果您使用 SQL Server)
标签: sql hibernate nhibernate