Hibernate 在@OneToMany关系上休眠@Filter无效
我正在使用Hibernate映射实体和查询的QueryDSL。我的实体部门有很多Familia,我只想过滤FMODIFICACION列为null的那些。这是我的部门实体: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")
@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");