平時經常用hibernate,由於習慣表間不建立關聯,所以hql查詢時候經常要用in語句。
我最常用的情況有2種:
1、in後是個子查詢,如 from a where a.id in (select b.aid from b where ...),這樣是沒問題的,如果a.id 和b.aid是相同的資料型別。
2、in的引數如果已知了,可以直接拼接在後面 如from a where a.id in (1,2,3,4...)。
3、上面的情況下,通常(1,2,3,4...)都是作為引數傳遞過來的,可能是陣列或者list。
假設lista;a裡面已經有資料了,則hql查詢條件可以為:
string hql="from a where a.id in (:alist)";
query query = getsession().createquery(hql);
query.setparameterlist("alist", a);
另外,query.setparameterlist中的第二個引數,還可以是陣列型別,如int a,不要被方法名稱迷惑。我也是最近剛學會的這種in引數設定
Hibernate中的HQL查詢語句
hibernate查詢語言是物件導向的查詢語言,其結構與sql查詢類似,不同的是,hql查詢的主體是實體化類而不是資料表。hql差詢提供了一種應用與資料庫之間的抽象,從而提高了可移植性。hql查詢的基本事例 query query session.createquery select new use...
hibernate中的HQL和QBC查詢
1.讀取src下hibernate.cfg.xml配置檔案 configuration cft new configuration configuration configure cft.configure 2.建立sessionfactory工廠 sessionfactory sessionfac...
hibernate 的 HQL學習筆記
hql之佔位查詢 1.方案一 匿名佔位符 test public void test02 2.方案二 name 引數名稱繫結 test public void test03 3.方案三 name 引數名稱繫結 物件屬性 test public void test04 hql語句之動態查詢 1.動態查...