2010-09-29 7 views

Répondre

0

Ne peut pas être fait en HQL; il n'autorise pas les références de paramètres dans la clause select.

+2

Avez-vous une référence pour cela? –

0

Je ne connais pas cette dernière réponse. J'utilise NH 3.2 et j'ai pu obtenir ce travail

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); 

Dans cet exemple, je devais créer un nouvel objet EventFacility. Avec à peu près tous les champs que vous voyez ici. L'entité Event a une autre entité, Owner qui en est suspendue.

Questions connexes