我有两个 DAO 课程FeeGroup
,FeeHeading
就像这样
class FeeGroup {
private int id;
private String name;
private Set<FeeHeading> feeHeadings;
private booelan isActive;
//getters & setters
}
class FeeHeading {
private int id;
private String name;
private FeeGroup feeGroup;
private booelan isActive;
//getters & setters
}
这是根据和的值HQL
获取结果的查询。isActive
FeeHeading
FeeGroup
select fg.feeHeadings
from FeeHeading fh
join fh.feeGroup fg
where fg.isActive = 1
and fg.isOptional = 0
and fh.isActive = 1
and fg.id = 78
FeeGroup
id 为 78 的下面有 10秒FeeHeading
,只有一个标题的 isActive 为 1。即使我将过滤条件设为 ,当前查询也返回 10 条记录fh.isActive = 1
。但是当我将查询更改为
select fh.name
from FeeHeading fh
join fh.feeGroup fg
where fg.isActive = 1
and fg.isOptional = 0
and fh.isActive = 1
and fg.id = 78
只有一个记录即将到来,这是唯一的活动记录。那么,为什么Set
即使给出了条件,我也没有首先得到过滤,或者我应该在查询中做什么来过滤呢?