Hibernate學習筆記(二)——動態條件查詢

需求是要刪除給定List裏的所有對應id的購物車商品,我的第一個反應就是組合字符串
        Session session = currentSession();
        StringBuffer sql = new StringBuffer("delete from shopping_entry where id in (?");
        for(int i=0; i < idList.size() - 1; i++){
            sql.append(",?");
        }
        sql.append(")");
        System.out.println("SQL: " + sql);
        for(int i=0; i < idList.size(); i++) {
            session.createSQLQuery(sql.toString()).setParameterList().setString(i, idList.get(i).toString()).executeUpdate();
<p>        }</p><p>一運行發現這是什麼鬼呀,創建了那麼多Query,明顯寫錯了......感覺這樣組合SQL也不是一個什麼很好地辦法,從網上查了查,原來有這麼簡單的方法呀</p><p><pre name="code" class="java">        Session session = currentSession();
        StringBuffer sql = new StringBuffer("delete from shopping_entry where id in (:idList)");
        session.createSQLQuery(sql.toString()).setParameterList("idList", idList).executeUpdate();


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章