|
所以我有这个长而复杂的机器SQLQuery:8 N4 `1 Q6 T* D" b6 o3 K
string hql = @"SELECT * FROM (SELECT a.*,rownum r__ FROM (select f2.filmid, f2.realisateurid, f2.titre, f2.annesortie, f2.langue, f2.duree, f2.resume, f2.poster, f2.qtytotal, f2.qtydisponible from film f2 where f2.filmid in select distinct f.filmid from film f,filmpays fp,pays p,filmgenre fg,genre g,informationpersonnel director,role r,informationpersonnel actor where f.filmid = fp.filmid and fp.paysid = p.paysid and f.filmid = fg.filmid and fg.genreid = g.genreid and f.realisateurid = director.personelid and f.filmid = r.filmid and r.personelid = actor.personelid and f.qtydisponible > 0 and upper(f.titre) LIKE :titre and f.annesortie >= :anneeLow AND f.annesortie = (((:page - 1) *8) 1) "; /*Begin transaction * ITransaction tx = s.BeginTransaction();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IQuery query = s.CreateQuery(hql); query.SetString("titre","%" sp.Title.ToUpper() "%"); query.SetInt32("anneeLow",sp.YearLow); query.SetInt32("anneeHigh",sp.YearHigh); query.SetString("pays","%" sp.Country.ToUpper() "%"); query.SetString("langue","%" sp.Lang.ToUpper() "%"); query.SetString("genre","%" sp.Genre.ToUpper() "%"); query.SetString("realisateur","%" sp.Director.ToUpper() "%"); query.SetString("acteur","%" sp.Actor.ToUpper() "%"); query.SetInt32("page",page); IList movies = query.List();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;tx.Commit();;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;return movies;我试着用100%高质量的写作方式
9 T$ |; u2 g4 O" o' I类似于% M; p a2 u4 m' j; W5 l
IList moreCats = sess.CreateQuery( "from Cat as cat where " "cat.Name = 'Fritz' or cat.id = :id1 or cat.id = :id2").SetInt64("id1",id1).SetInt67("id2",id2).List();在查阅hql文档之后,我知道怎么了hql简单的小查询,但是如果我从另一个选择(如查询)中选择一个复合选择呢?
8 q" Y4 F" h% G" @谢谢/ F4 v9 ?- Q" }
, ^4 B6 }0 h) \0 h: Y. e. E
解决方案: |
|