2011-09-23 216 views
0

我認爲這是一個非常簡單的問題。但不幸的是我找不到解決方案。
我有一個名爲「發票」具有「inv_No」,「inv_netvalue」,「inv_date」的數據庫表inv_No是主鍵。我想根據給定的inv_No獲取一個Invoice對象。我用了一個critaria。但是這沒有結果。 list.size()爲0休眠標準結果

 Invoice invoice = new Invoice(); 
     invoice.setInvNo(Integer.parseInt(invoiceNo)); 
     Session session = HSession.getSession(); 
     Criteria crit = session.createCriteria(Invoice.class); 
     crit.add(Example.create(invoice)); 
     List list=crit.list(); 

,但是當我用這個"FROM Invoice invoice WHERE invoice.invNo='" + invoiceNo + "'"它將返回我的預期。

任何一個可以幫助我please.Let我知道我錯了..

回答

5

這不是很清楚,我爲什麼你已經得到了第二個createCriteria電話。你試過這個嗎?

Criteria crit = session.createCriteria(Invoice.class); 
crit.add(Example.create(invoice)); 

例如,在examples in the docs之後。

編輯:另一種選擇是不使用「舉例查詢」只是:

Criteria crit = session.createCriteria(Invoice.class); 
crit.add.(Restrictions.eq("invNo", Integer.parseInt(invoiceNo))); 
+0

是的,在第二批評中沒有意義。我試着用許多方法改變代碼..你的代碼也是如此。但它還沒有工作 –

+0

@AashMaharoon:你有沒有試過在日誌中查看SQL中發送的內容?另請參閱我的編輯答案與另一種選擇。 –

+0

非常感謝。那個eq運作良好。其實我想知道問題出在哪裏(解決未來的問題)。並試圖用不同的表,但沒有結果:(現在任何方式,我的問題解決了。 –

0
Criteria criteria = session.createCriteria(Invoice.class); 
criteria.add.(Restrictions.eq("invNo", Integer.parseInt(invoiceNo))); 

是獲得結果的最佳方式。

+0

區別是除了變量名嗎? –