2011-09-23 548 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

区别是除了变量名吗? –