简体   繁体   English

休眠条件结果

[英]Hibernate criteria results

I think this is a very simple question. 我认为这是一个非常简单的问题。 but unfortunately I cannot find a solution. 但不幸的是我找不到解决方案。
I have a mysql database table called "Invoice" having "inv_No","inv_netvalue","inv_date" inv_No is the primary key. 我有一个名为“发票”的mysql数据库表,具有“ inv_No”,“ inv_netvalue”,“ inv_date” inv_No是主键。 I want to get a Invoice object according to a given inv_No. 我想根据给定的inv_No获取发票对象。 I used a critaria. 我用了一个critaria。 But this result nothing. 但这没有任何结果。 list.size() is 0. 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();

but when I used this "FROM Invoice invoice WHERE invoice.invNo='" + invoiceNo + "'" it returns which I expected. 但是,当我使用此"FROM Invoice invoice WHERE invoice.invNo='" + invoiceNo + "'"它会返回预期的结果。

Any one help me please.Let me know where I am wrong.. 任何人都可以帮助我。让我知道我哪里错了。

It's not clear to me why you've got the second createCriteria call. 对我来说尚不清楚,为什么还要第二个createCriteria调用。 Have you tried this? 你有尝试过吗?

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

That follows some of the examples in the docs , for example. 例如,这遵循docs中的一些示例。

EDIT: Another option is not to use "query by example" but just: 编辑:另一个选项是不使用“示例查询”,而只是:

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

is the best way to get the results. 是获得结果的最佳方法。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM