2016-09-09 3 views
1

아래의 최대 절전 모드 쿼리를 사용하여 데이터베이스에서 마지막 레코드를 가져 오려고합니다.ERROR : org.hibernate.hql.internal.ast.ErrorCounter - line 1:45 : 예상치 못한 토큰 : 테이블에서 마지막 레코드를 가져 오는 중 DESC가 발생했습니다.

ERROR: org.hibernate.hql.internal.ast.ErrorCounter - line 1:45: unexpected token 
: DESC 

것은 무엇을 잘못 될 수 :이 오류를 얻고있다 위의 HQL와

//fetch the last data from a field in a table 
Session session = _sessionFactory.getCurrentSession(); 
Query query = session.createQuery("select t.currentfile from file t DESC"); 
query.setMaxResults(1); 
List<Object[]> rows = query.list(); 

for (Object[] row: rows) { 
    System.out.println(" ------------------- "); 
    System.out.println("current file: " + row[0]); 
} 

?

답변

1

내림차순 ('DESC'또는 'desc')과 오름차순 ('ASC'또는 '오름차순')은 절의 주문에만 사용할 수 있습니다.

그래서 코드가 같은 것을 볼 것이다 :

Query query = session.createQuery("select t.currentfile from file t 
    ORDER BY t.time_created DESC"); 

을 (time_created 당신이 테이블에 있거나 필드 것을 추가하지 않은로만 예제 필드는 내림차순으로 주문하는 것)

+0

이 현재 파일 열의 최신 데이터를 제공합니다 – Francis

+0

이 문제는 경로 t.currentfile을 해결할 수 없습니다. 예기치 않은 토큰 t – Francis

+0

은 [Ljava.lang.Object; – Francis

0

검색어가 잘못되었습니다. DESC 앞에 ORDER BY yourSortAttribute를 두어야합니다.

+0

정렬 할 엔터티 필드입니다. DESC는 내림차순을 의미합니다. 결과를 정렬하지 않으려면 DESC 만 제거하십시오. –

+0

session.createQuery ("t DESC에 의한 파일 순서에서 t.currentfile 선택"); – Francis

+0

는 괜찮습니다 ..... – Francis

관련 문제