使用自定义过滤器的Hibernate LazyCollection

时间:2014-02-25 10:50:53

标签: java hibernate lazy-loading

我想获得活跃实体的数量,所以我有了过滤器:

@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时,过滤器可以正常工作。是否可以使此过滤器与惰性集合一起使用?

0 个答案:

没有答案