@OneToMany 关系上的 Hibernate @Filter 无效

Hibernate @Filter on @OneToMany relationship has no effect

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

@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;
    }
    ...
}

这是查询(使用 QueryDSL):

public List<Sector> getSectores() {

    //enable filter
    Session session = entityManager.unwrap(Session.class);
    Filter filtroFamilia = session.enableFilter("FAMILIA_FILTRO_FECHA");

    //perform query
    QSector qSector = QSector.sector;
    JPAQuery query = new JPAQuery(entityManager);
    List<Sector> sectores = query.from(qSector).list(qSector);

    // disable filter
    session.disableFIlter("FAMILIA_FILTRO_FECHA");
    return sectores;
}

但此查询正在检索所有 Familia。我究竟做错了什么?

谢谢!

已解决!如果在同一事务中禁用过滤器,则似乎对查询没有影响。解决方案就是删除这一行:

session.disableFIlter("FAMILIA_FILTRO_FECHA");