2014-05-17 2 views
0

데이터베이스에서 데이터를 가져 오는 중 테이블에 6 개의 행이 있지만 프로그램의 출력이 표시되지 않습니다. 내 코드가 아래에 어떤 문제가있을 수 있습니다. 콘솔에 오류가 표시되지 않습니다.테이블에서 행을 반환하지 않음

public class smsDAO { 

Session session = HibernateUtil.getSessionFactory().openSession(); 
public List<SmsGateway> fetchAll() { 
     System.out.println("Calling fetchA b"); 
     Transaction tx = session.beginTransaction(); 
     List<SmsGateway> sms = null; 
     try { 
      sms = session.createQuery("FROM sms_gateway").list(); 
      tx.commit(); 
      for (SmsGateway s : sms) { 
       System.out.println(s.getDescription() + " " + s.getUrl1()); 
      } 
     } catch (HibernateException e) { 
      if (tx != null) { 
       tx.rollback(); 
      } 
     } finally { 
      session.close(); 
     } 
     System.out.println("Calling fetchA re "); 
     return sms; 
    } 
} 
+0

"sms_gateway"는 자바 클래스 또는 DB 테이블의이 이름입니까? – mahesh

+0

db 클래스 이름. – xrcwrn

답변

0

콘솔에서 던져진 예외를 신중히 선택했기 때문에 콘솔에서 오류가 발생하지 않습니다.

catch (HibernateException e) { 
     e.printStackTrace(); 
     if (tx != null) { 
      tx.rollback(); 
     } 
     throw e; 
    } 

에 의해

catch (HibernateException e) { 
     if (tx != null) { 
      tx.rollback(); 
     } 
    } 

교체하고 문서의 HQL에 대한 장을 다시 읽어보십시오. HQL은 항상 엔터티의 이름과 매핑 된 필드를 사용합니다. 결코 테이블 이름을 사용하지 않습니다. 그래서 쿼리는

select s from SmsGateway s 

이어야합니다. 또한 Java 명명 규칙을 존중합니다.

+0

정말 천재 야. – xrcwrn

관련 문제