Hibernate 在@OneToMany关系上休眠@Filter无效

Hibernate 在@OneToMany关系上休眠@Filter无效,hibernate,filter,querydsl,Hibernate,Filter,Querydsl,我正在使用Hibernate映射实体和查询的QueryDSL。我的实体部门有很多Familia,我只想过滤FMODIFICACION列为null的那些。这是我的部门实体: @FilterDef(name = "FAMILIA_FILTRO_FECHA") @Entity public class Sector { ... private List<Familia> familiasList; @OneToMany(mappedBy = "sector")

我正在使用Hibernate映射实体和查询的QueryDSL。我的实体部门有很多Familia,我只想过滤FMODIFICACION列为null的那些。这是我的部门实体:

@FilterDef(name = "FAMILIA_FILTRO_FECHA")
@Entity
public class Sector {
    ...
    private List<Familia> familiasList;

    @OneToMany(mappedBy = "sector")
    @Filter(name = "FAMILIA_FILTRO_FECHA", condition = "FMODIFICACION IS NULL")
    public List<Familia> getFamiliasList() {
        return familiasList;
    }
    ...
}
@FilterDef(name=“FAMILIA\u filtero\u FECHA”)
@实体
公营部门{
...
私人名单家庭名单;
@OneToMany(mappedBy=“部门”)
@过滤器(name=“FAMILIA\u FILTRO\u FECHA”,条件=“FModification为空”)
公共列表getFamiliasList(){
返回家族列表;
}
...
}
这就是查询(使用QueryDSL):

公共列表getSectores(){
//启用过滤器
Session Session=entityManager.unwrap(Session.class);
Filter Filter FAMILIA=session.enableFilter(“FAMILIA_filtero_FECHA”);
//执行查询
QSector QSector=QSector.sector;
JPAQuery query=新的JPAQuery(entityManager);
List sectores=query.from(qSector).List(qSector);
//禁用过滤器
禁用过滤器(“家庭过滤器”);
返回扇区;
}
但是这个查询正在检索所有的家族。我做错了什么


谢谢

解决了!如果在同一事务中禁用了筛选器,则在查询中似乎没有任何效果。解决方案是删除这一行:

session.disableFIlter("FAMILIA_FILTRO_FECHA");
session.disableFIlter("FAMILIA_FILTRO_FECHA");