1. 程式人生 > >hibernate關於in和not in的查詢

hibernate關於in和not in的查詢

方法一:
@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true)
public List<OpUsrrole> OpUsrroleExList(List<OpUsrrole> grprole) {
ArrayList<Long> ids = new ArrayList<Long>();
for(int i=0;i<grprole.size();i++){
ids.add(grprole.get(i).getIRoleid());
System.out.println(ids.get(i).toString());
}
Query q = sessionFactory.getCurrentSession().createQuery("select distinct rl from OpUsrrole rl where rl.IRoleid not in(:ids)");
q.setParameterList("ids", ids);
return q.list();

}

方法二:
  1. public
    ArrayList<T> EmptyBaia(){   
  2.         DetachedCriteria subconsulta = DetachedCriteria.forClass(Usuarios.class).setProjection(Property.forName("baia"));   
  3.         ArrayList<T> baia = (ArrayList<T>) this.session.createCriteria(this.classe).add(Property.forName("numero").notIn(subconsulta
    )).list();   
  4. return baia;   
  5.     } 

相關推薦

Oracle中使用join表連線查詢代替 innot in 查詢

首先,在oracle中效率排行:表連線>exist>not exist>in>not in,而且使用in查詢會有查詢條件數量不能超過1000的限制;因此如果簡單提高效率可以用exist代替in進行操作,當然換成表連線可以更快地提高效率,具體是用le

Mycat 實現MongoDB的BETWEEN ANDIN&NOT IN查詢

在實現過程中第一就是分析怎麼去實現,其次在mycat哪個部分實現。首先我們知道BETWEEN AND是一個區間值查詢,而IN 是一個多值且的關係,其實最終目的都是封裝為MongoDB支援的資料庫操作語句,如:db.getCollection('t_alarm_aggr_201

oracle 子查詢中null的問題(in not in

這裡的in後面的句子可以理解為or拼接,簡單舉例即 in (9566,9839,null)可以等價於mgr=9566 or mgr=9839 or mgr=null, not in (9566,9839,null)可以等價於not(mgr=9566 or mgr=9839 o

Elasticsearch 查詢in not in 的實現方式

 最近用到ES查詢,因用的是Java寫的,需要實現一個需求: 過濾一部分id, 查詢時不需要查出來。 既然需要不包含,那麼首先需要實現包含的方式(精確完全匹配),這裡我們要用到的是termQuery首先看下ES Bool聯合查詢的屬性:bool聯合查詢: must,shoul

hibernate關於innot in查詢

方法一: @Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true) public List<OpUsrrole> OpUsrroleExList(List<OpUsrrole> grprole) { Arra

oracle_not existsnot in的用法區別

沒有 class oracl 水果 where tle select mark 顯示 (轉 飛翔-方向 積累 沈澱http://www.cnblogs.com/mytechblog/) sql中exists,not exists的用法 exists表示()內子查詢語句返回結

數據庫優化技巧之innot in

寫法 exists art null data class -s ack size 在編寫SQL語句時,假設要實現一張表有而另外一張表沒有的數據時。 通常第一直覺的寫法是: select * from table1 where table1.id not in(s

sql語句學習(NOT EXISTS NOT IN

exist car rod cto from log del sele tinc NOT EXISTS SELECT   a.*FROM   t_user aWHERE   a.id_card LIKE ‘%3203821995100%‘AND NOT EXISTS ( S

SQL 中 NOT IN 查詢不到數據

運算符 clas 參與 http ogr nbsp gpo 應該 pic 一、問題 用以下sql語句查詢數據,結果為空 SELECT a.ID , a.Sub_Project_Name , a.Sub_Project_Type

SQL優化- innot in

audit roc RoCE AI 時間 pro 執行 code ESS in不會導致索引失效,但最終數據庫會將in語句解析為or語句,eg: select * from T_MAIN_PROCESS t where t.audit_status_code in (‘05‘

面試被問之-----sql優化中in與exists的區別 Mysql中 in or exists not exists not in區別 (網路整理) Sql語句中INexists的區別及應用 [筆記] SQL效能優化 - 避免使用 IN NOT IN

曾經一次去面試,被問及in與exists的區別,記得當時是這麼回答的:''in後面接子查詢或者(xx,xx,xx,,,),exists後面需要一個true或者false的結果",當然這麼說也不算錯,但別人想聽的是sql優化相關,肯定是效率的問題,只是那個時候確實不知道它們在sql優化上的區別,只知道用in會進

existsin, not existsnot in

【1】exists 對外表用loop逐條查詢,每次查詢都會檢視exists的條件語句。 當 exists裡的條件語句能夠返回記錄行時(無論記錄行是多少,只要能返回),條件就為真 , 返回當前loop到的這條記錄。反之如果exists裡的條件語句不能返回記錄行,條件為假,則

mysql not in 查詢不出資料

表結構如下 表Table_A: 專案 數量 id name 1 張三 2 趙四

sql中existsnot exists用法 容易in not in 混淆

看專案程式碼時遇到,記錄下 select * from A where id in(select id from B) 以上查詢使用了in語句,in()只執行一次,它查出B表中的所有id欄位並快取起來. 然後,檢查A表的id是否與B表中的id相等, 如果相等則將A表的記

SQL中EXCEPTNot in的區別?

初始化兩張表: CREATE TABLE tb1(ID int) INSERT tb1SELECT NULLUNIONALLSELECT NULLUNIONALLSELECT NULLUNIONALLSELECT 1UNIONALLSELECT 2UNIONALLSELECT

關於hql中的in not in

今天下午在碼程式碼的時候碰到了in 和not in的使用,然後我使用的是公司封裝的方法 發現公司封裝的方法並不支援in 和not  in,我還死腦筋的鑽了半天,簡直浪費時間。 晚上回到房裡怒測試hibernate自身的方法,發現這簡直太簡單了!!!!! 這裡就不提供程式碼塊

hive例項講解實現innot in子句

目前hive不支援 in或not in 中包含查詢子句的語法,所以只能通過left join實現。 假設有一個登陸表login(當天登陸記錄,只有一個uid),和一個使用者登錄檔regusers(當天註冊使用者,欄位只有一個uid),這兩個表都包含一個欄位,uid。

避免使用 IN NOT IN

IN 和 NOT IN 是比較常用的關鍵字,為什麼要儘量避免呢? 1、效率低  2、容易出現問題,或查詢結果有誤 (不能更嚴重的缺點) 以 IN 為例。建兩個表:test1 和 test2 create table test1 (id1 int) create table test2 (id2

mysql的innot in的用法(特別注意not in結果集中不能有null)

注意: 1. not in的結果集中出現null則查詢結果為null; 例如下面sql中,含有list中null值,無法正確查詢結果; SELECT COUNT(name) FROM CVE WHERE name NOT IN ('CVE-1999-000

mysql not exists not in對比

not exists比not in效率高 如果查詢語句使用了not in 那麼內外表都進行全表掃描,沒有用到索引;而not exists的子查詢依然能用到表上的索引。所以無論那個表大,用not exists都比not in要快。  分析: 1. select * from