首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate @Filter对@OneToMany关系没有影响

Hibernate @Filter对@OneToMany关系没有影响
EN

Stack Overflow用户
提问于 2015-01-12 11:33:47
回答 1查看 516关注 0票数 0

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

代码语言:javascript
复制
@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):

代码语言:javascript
复制
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。我做错了什么?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-12 11:43:07

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

代码语言:javascript
复制
session.disableFIlter("FAMILIA_FILTRO_FECHA");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27901026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档