Hibernate中的示例查询

时间:2012-06-09 08:44:48

标签: hibernate criteria criteria-api hibernate-criteria

我试图了解Hibernate中的Example查询是如何工作的。

deptId是departments表的主键。

我最初尝试过这段代码:

Dept department = new Dept();
        department.setDeptId(3);
        //department.setDeptName("ABCD");
        Criteria criteria = session.createCriteria(Dept.class).add(Example.create(department));

执行此代码时,结果不会过滤到具有deptId = 3的行w.r.t,即SQL查询等同于从Dept表中选择所有记录,其中1 = 1。

但如果我考虑这段代码:

Dept department = new Dept();
        //department.setDeptId(3);
        department.setDeptName("ABCD");
        Criteria criteria = session.createCriteria(Dept.class).add(Example.create(department));

结果将在deptName即ABCD

中过滤掉

请告知为什么示例查询的行为与此类似。

1 个答案:

答案 0 :(得分:3)

documentation开始,按示例查询(QBE)将忽略主键。

对于简单的主键,如果您知道PK的值,则可以改为使用load()get()

对于复合主键,我同意必须支持QBE中的主键。但是,此请求仍为unresolved