我想获得活跃实体的数量,所以我有了过滤器:
@FilterDef(name = "onlyActive",
defaultCondition = "IS_ACTIVE = '1'")
然后我将它与lazyCollection一起使用:
@OneToMany(mappedBy = "databaseInstance")
@LazyCollection(LazyCollectionOption.EXTRA)
@Filter(name = "onlyActive")
public List<CloudInstance> getCloudInstances() {
return cloudInstances;
}
过滤器被添加到会话中,lazy collection被初始化但是在调用
时getCloudInstances().size();
我得到了
select count(ID) from CLOUD_INSTANCES where databaseInstance_ID =?
它不会将IS_ACTIVE ='1'附加到查询中,因此过滤器不起作用。当我删除@LazyCollection并添加eager fetch时,过滤器可以正常工作。是否可以使此过滤器与惰性集合一起使用?