The NoteBook of EricKong

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks

          此方法可多條件查詢且可以根據關聯的表條件進行查詢
          如查詢某個商品:
          表結構如下:
          goods(商品表)
          goodsid(商品id) goodsname(名稱) typeid(分類-外鍵)  supplierid(供應商-外鍵)

          type(分類表)
          typeid(id主鍵)   typename(分類名稱)

          supplier(供應商表)
          supplierid(ID主鍵)   suppliername( 供應商名稱)

          你可建一個查詢條件的類,里面包括你要查詢的所有字段
          如: public class Query{
              private String suppliername;
              private String goodsname;
              private String typename;
          ..................
          get/set方法................
          }

          得到查詢條件后,可以把此類的一個對象傳入自己做的方法,此方法可以根據條件的個數及是否輸入條件進行查詢:
          public static List query_goods(Query query){
                  Session session = SessionFactory.getSession();
                  Criteria criteria = session.createCriteria(Goods.class);
                  Criteria type = criteria.createCriteria("type");
                  Criteria  supplier= criteria.createCriteria("supplier");
              
                  if(null!=query.getGoodsname() && !"".equels(query.getGoodsname() ))
                      criteria.add(Restrictions.like("goodsname","%"+query.getGoodsname()+"%"));
                
                 if(null!=query.getSuppliername() && !"".equels(query.getSuppliername() ))
                      supplier.add(Restrictions.like("suppliername","%"+query.getSuppliername()+"%"));

                  if(null!=query.getTypename() && !"".equels(query.getTypename() ))
                      type.add(Restrictions.like("typename","%"+query.getTypename+"%"));
                 
                  List list = criteria.list();
                 
                  session.clear();
                  session.close();
                  return list;
              }

          以上方面還可多層的嵌套,如type里還有外鍵,可以按照以上方法進行嵌套。注意,查詢時所有涉及到的數據都將一次性寫入類的屬性中,包括有關聯的,即此時goods的關聯延遲加載無效,我覺得這一點非常的好。呵呵,有什么好處,可以自己好好的想想。
          有許多人曾經提到過用Example,就不用自己判斷了,如果沒有關聯條件查詢的話,確實是好,可它的缺點就是不能查詢關聯中的條件。

           

          posted on 2010-08-12 21:02 Eric_jiang 閱讀(2509) 評論(0)  編輯  收藏 所屬分類: Hibernate
          主站蜘蛛池模板: 崇信县| 客服| 温宿县| 房产| 黑山县| 容城县| 庆云县| 射洪县| 华亭县| 四会市| 丰城市| 星座| 荥经县| 东光县| 双牌县| 隆尧县| 厦门市| 新龙县| 剑川县| 黄龙县| 尚义县| 隆尧县| 娱乐| 区。| 汉中市| 名山县| 禹州市| 三门县| 乡宁县| 盐津县| 孝感市| 武安市| 中江县| 昌黎县| 江西省| 西乌珠穆沁旗| 河南省| 吴旗县| 陈巴尔虎旗| 屏山县| 榆中县|