2013-04-17 175 views
-1

我想與ID什麼,它總是返回0

檢索與Hibernate的數據,這是我的助手類:

public class ftHelper { 

    Session session = null; 

    public ftHelper(){ 
     this.session = HibernateUtil.getSessionFactory().getCurrentSession(); 
    } 

    public List getFtResult(String beginDate) { 
    List<FinancialTransactions> ftList = null; 
    try { 
     org.hibernate.Transaction tx = session.beginTransaction(); 
     Query q = session.createQuery ("from FinancialTransactions where Date='"+beginDate+"'"); 
     ftList = (List<FinancialTransactions>) q.list(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return ftList; 
} 

    public FinancialTransactions getByID(){ 

     System.out.print("HERE"); 

     FinancialTransactions ft = null; 

    try { 

     org.hibernate.Transaction tx = session.beginTransaction(); 
     Query q = session.createQuery("from FinancialTransactions where ID=" + 1); 
     ft = new FinancialTransactions(1); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    return ft; 

    } 

我在這裏使用getById函數來檢索數據

我有一個控制器class

import javax.faces.model.DataModel; 
import javax.faces.model.ListDataModel; 

/** 
* 
* @author mert 
*/ 
@ManagedBean 
@RequestScoped 
public class ftController { 

    String beginDate; 
    DataModel fts; 
    ftHelper ft; 
    int num; 

    public int getNum() { 
     return num; 
    } 



    /** 
    * Creates a new instance of ftController 
    */ 
    public ftController() { 


    } 

    public DataModel getFts() { 

     if (fts == null) { 
      fts = new ListDataModel(ft.getFtResult(beginDate)); 
     } 
     return fts; 
    } 

    public int getID(){ 

     FinancialTransactions ftObject = ft.getByID(); 


     return num = ftObject.getAmount(); 

    } 

} 

在這個控制器中我使用getID函數來獲取對象

在JSF我不喜歡的是:

但它始終打印0,爲什麼?

我覺得有什麼問題在我的課,因爲

我在我的控制器一樣,編輯的getID()函數:

public int getID(){ 
FinancialTransactions fta = new FinancialTransactions(5, "asdasdsa", 123); 

     return num = fta.getAmount(); 
} 

NUM也返回0爲什麼爲什麼爲什麼?這裏有什麼問題?

+0

什麼是你'FinancialTransactions'類是什麼樣子? –

+0

如果'id'是你的'FinancialTransactions'實體類的主鍵,只要執行'session.get(FinancialTransactions.class,id)'。不需要查詢,也不需要明確的事務。你似乎讓事情變得比必要的複雜得多。 – Jesper

回答

0

您沒有執行在getByID()查詢

public FinancialTransactions getByID(){ 

    System.out.print("HERE"); 

    FinancialTransactions ft = null; 

try { 

    org.hibernate.Transaction tx = session.beginTransaction(); 
    Query q = session.createQuery("from FinancialTransactions where ID=" + 1); 

    // q.getResultList(); MISSING HERE 
    ft = new FinancialTransactions(1); 
} catch (Exception e) { 
    e.printStackTrace(); 
}