我认为这是一个非常简单的问题。但不幸的是我无法找到解决方案
我有一个名为“Invoice”的mysql数据库表,其中包含“inv_No”,“inv_netvalue”,“inv_date”,inv_No是主键。我想根据给定的inv_No获取Invoice对象。我使用了一个标准。但这个结果没什么。 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 + "'"
时,它会返回我期望的内容。
任何人都请帮帮我。让我知道我哪里错了..
答案 0 :(得分: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)));
答案 1 :(得分:0)
Criteria criteria = session.createCriteria(Invoice.class);
criteria.add.(Restrictions.eq("invNo", Integer.parseInt(invoiceNo)));
是获得结果的最佳方式。