2010-09-29 31 views
6

我有HQL語句:HQL:結合「插入...選擇」具有固定參數值

insert into Item (ost, value, comments, startTime, endTime, proposedBy) 
select si.ost, si.value, si.comments, si.endTime, si.endTime, u 
from Item si, User u 
where si.ost = ? and u.id = ? 

怎麼可能被修改,同時採取其他列使用參數的值oststartTimeselect

回答

0

無法在HQL中完成;它不允許select子句中的參數引用。

+2

你有參考嗎? – 2011-12-19 10:48:58

0

我不知道最後的答案。我正在使用NH 3.2,並且我能夠得到這個工作

var hql = @"INSERT INTO EventFacility (Facility, Event, Owner, Position) 
SELECT f, :evt, :own, :position from Facility f where f.Id IN (105, 109, 110)"; 

var @event = Session.Get<Event>(351931); 
var query = Session.CreateQuery(hql) 
       .SetInt32("position", 0) 
       .SetEntity("evt", @event) 
       .SetEntity("own", @event.Owner); 

var x = query.ExecuteUpdate(); 
Assert.AreEqual(3, x); 

在這個例子中,我需要創建一個新的EventFacility對象。幾乎所有你在這裏看到的領域。事件實體有另一個實體,所有者掛起它。