2014-05-17 59 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」是這個java類或DB表的名字嗎? – mahesh

+0

db類名稱。 – xrcwrn

回答

0

控制檯沒有甩掉任何錯誤,因爲您故意選擇忽略拋出的異常。更換

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

通過

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

,並重新閱讀HQL文檔中的章節。 HQL總是使用實體名稱及其映射字段。它從不使用表名。所以查詢應該是

select s from SmsGateway s 

此外,尊重Java命名約定:類以大寫字母開頭。

+0

真的,你是天才 – xrcwrn