2017-01-18 3 views
0

im new для спящего режима. У меня есть вопрос относительно поиска диапазона спящего режима. то, что я хочу, чтобы искать в диапазоне от 2-й различной колонки ниже мои иллюстрацииИспользование Hibernate для запроса Диапазон от 2 Различные свойства

в БДЕ:

Start_No | End_No 
    3000 | 4000 

моих Hibernate запросы подобно этому

session = getSession(); 
      session.buildLockRequest(new LockOptions(LockMode.NONE)); 
      Criteria crit = session.createCriteria(CardRange.class); 

if(!IMXUtil.isEmpty(s_startNo) && !IMXUtil.isEmpty(s_endNo)){ 
       crit.add(Restrictions.ge("startNo", Long.parseLong(s_endNo))); 

       crit.add(Restrictions.ge("startNo", Long.parseLong(s_startNo))); 

      } 

ProjectionList projList = Projections.projectionList(); 
      projList.add(Projections.property("cardRangeId")); 
      projList.add(Projections.property("startNo")); 
      projList.add(Projections.property("endNo")); 
      projList.add(Projections.property("issuerId")); 
      projList.add(Projections.property("status")); 
      projList.add(Projections.property("createdDate")); 
      projList.add(Projections.property("lastModifiedDate")); 
      crit.setProjection(projList); 
      crit.setFirstResult(iDisplayStart); 
      crit.setMaxResults(iDisplayLength); 

return crit.list(); 

выход, как это

если я поставил 3500 до 3600 = он все еще падает в диапазоне от 3000 до 4000 в db и отображает выход. как я могу создать критерии спящего режима для удовлетворения этого поиска?

+1

Если вы ищете диапазон значений между start_no и end_no, тогда вы можете использовать простое условие. где start_no <=: param1 AND end_no> =: parma2 – CrazyMac

+0

Теперь вы делаете что-то вроде 'where start_no>: endNoParam и start_no>: startNoParam', что явно не то, что вы описали. –

ответ

0

Шаги по созданию критериев являются

1.Create Сессия 2. Добавление проекции 3.Then добавить ограничения. Ваш проекционный список кажется прекрасным.

Выполните следующие действия для вашего критерия (методы, требующие по классу Ограничения возвращает критерий объекта),

Определить объект критерия для каждого условия

Критерий c1 = Restrictions.ge ("startNo", Long.parseLong (s_startNo)); Критерий c2 = Restrictions.le ("endNo", Long.parseLong (s_endNo));

добавить их к критериям возражают

Критерий c3 = Restrictions.and (C1, C3); crit.add (c3);

В единственной строке

crit.add (Restrictions.and (Restrictions.ge ("startNo", Long.parseLong (s_startNo)), Restrictions.le ("endNo", Long.parseLong (s_endNo))));