Hibernate中的示例查询

问题描述 投票:1回答:1

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

deptId是部门表的主键。

我最初尝试过此代码:

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

[执行此代码,不会过滤具有deptId = 3的行的结果,即,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进行过滤

请告知示例查询为什么会这样。

hibernate criteria hibernate-criteria
1个回答
3
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.