国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

OJB中的多條件查詢

2019-11-18 15:31:18
字體:
來源:轉載
供稿:網友
    項目還是一樣,以一個reservation為例,一個reservation就是一個課程在實際中的體現,它有開始和終止時間還有狀態等信息。timeslot就是定義了他的時間,里面有三個字段(timeslotID,start,end,reservationID)。

1。我要查詢課程,輸入的參數是一個時間段,得到的是一個reservation的列表。我可以這樣做

  1. /*
  2.  *  (non-javadoc)
  3.  * @see org.pie.vls.application.VLSBase#init()
  4.  */
  5. public void init() {
  6.     try {
  7.         broker = PersistenceBrokerFactory.defaultPersistenceBroker();
  8.         broker.clearCache();
  9.         //general criteria, with all the query condition
  10.         Criteria crit = new Criteria();
  11.         Criteria crit1 = null;
  12.         List criteriaList = new Vector();
  13.         //if the reservation id is not 0
  14.         if (resvID > 0) {
  15.             crit.addNotEqualTo("resvID", new Integer(this.resvID));
  16.         }
  17.         Iterator iter = this.reservationTimeslotList.iterator();
  18.         while (iter.hasNext()) {
  19.             //logger.debug ("TIMESLOT -----");
  20.             ReservationTimeslot reservationTimeslot = (ReservationTimeslot) iter.next();
  21.             /**
  22.              * set the query condition list
  23.              * start and end
  24.              */
  25.             startTimeUTC = reservationTimeslot.getStartDateTimeUTC();
  26.             endTimeUTC = reservationTimeslot.getEndDateTimeUTC();
  27.             if (this.selectType == Constants.BETWEEN_RESERVATIONS) {
  28.                 crit1 = new Criteria();
  29.                 //logger.debug ("BETWEEN " + startTimeUTC + " " + endTimeUTC);
  30.                 crit1.addBetween("start", startTimeUTC, endTimeUTC);
  31.                 Criteria critMore1 = new Criteria();
  32.                 critMore1.addBetween("end", startTimeUTC, endTimeUTC);
  33.                 Criteria critMore2 = new Criteria();
  34.                 critMore2.addLessOrEqualThan("start", startTimeUTC);
  35.                 critMore2.addGreaterOrEqualThan("end", endTimeUTC);
  36.                 crit1.addOrCriteria(critMore1);
  37.                 crit1.addOrCriteria(critMore2);
  38.                 }
  39.             criteriaList.add(crit1.copy(truetruetrue));
  40.         }
  41.         if (criteriaList.size() > 0) {
  42.             crit1 = new Criteria();
  43.             for (int i = 0; i < criteriaList.size(); i++) {
  44.                 crit1.addOrCriteria((Criteria) criteriaList.get(i));
  45.             }
  46.             crit.addAndCriteria(crit1);
  47.         }
  48.         logger.debug(crit);
  49.         QueryByCriteria tquery = QueryFactory.newQuery(Timeslot.class, crit);
  50.         this.timeslots = broker.getCollectionByQuery(tquery);
  51.         broker.clearCache();
  52.         broker.close();
  53.     } catch (Throwable t) {
  54.         logger.error(t.getMessage(), t);
  55.     }
  56. }



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东山县| 萨嘎县| 吉隆县| 乌拉特中旗| 蕉岭县| 彰化县| 泰顺县| 建湖县| 乡城县| 乌拉特中旗| 滕州市| 曲阳县| 枝江市| 紫金县| 绩溪县| 长治市| 昔阳县| 社旗县| 新宁县| 锦州市| 宝兴县| 北辰区| 晋宁县| 偏关县| 洪江市| 从江县| 馆陶县| 台东市| 天祝| 永昌县| 都兰县| 西宁市| 隆子县| 焦作市| 金堂县| 苏尼特左旗| 兴宁市| 兴宁市| 信阳市| 信阳市| 东宁县|