Hibernate标准结果

时间:2011-09-23 10:37:50

标签: java hibernate

我认为这是一个非常简单的问题。但不幸的是我无法找到解决方案 我有一个名为“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 + "'"时,它会返回我期望的内容。

任何人都请帮帮我。让我知道我哪里错了..

2 个答案:

答案 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)));

是获得结果的最佳方式。