2016-11-10 2 views
0

내 쿼리에서 "ge"연산자로 최대 절전 기준에 문제가있다. 내 기준 코드가 아래에 있습니다. 누군가가 기준에 대한 비정상적인 동작의 근본 원인을 안내하는 데 도움을 줄 수 있습니까? 또한 내 테이블에는 5 개의 레코드가 있습니다.ge 연산자로 Hibernate Criteria 쿼리가 영원히 멈추고있다

LevelPriority levelPriorirty = (LevelPriority) crit.uniqueResult(); 
    List<LevelPriority> resList = new ArrayList<>(); 
    Criteria newcrit = getSess().createCriteria(LevelPriority.class); 
    if (levelPriorirty != null) { 

     newcrit.add(Restrictions.ge("levelPriority",  levelPriorirty.getLevelPriority())); 
     resList = (List<LevelPriority>) newcrit.list(); 
+0

내가 기준의 어떤을 볼 수 없습니다로 변경? 첫 번째 라인에서 ge-Restriction을 crit Criteria에 넣지 않는 이유는 무엇입니까? newcrit.add (Property.forName ("levelPriority"). gt (levelPriorirty.getLevelPriority())) –

+0

죄송합니다. 조건 안에 있습니다. 운영자가 아니에요. –

+0

또한 특정 우선 순위보다 크거나 같은 결과를 반환해야합니다. 그래서 나는 대신에 ge를 사용해야한다. –

답변

0

마침내 나는 그것을 풀 수 있었다. 나는 기준이 만들어 질 때마다 새로운 세션을 열어 놓고있는 것을 발견했다. 그래서 아래에서 나중에 변경했습니다.

sessionFactory.openSession(); 

sessionFactory.getCurrentSession();