【发布时间】:2015-01-12 11:33:47
【问题描述】:
我正在使用 Hibernate 来映射我的实体和 QueryDSL 以进行查询。我的实体部门有很多家族,我只想过滤那些 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。我究竟做错了什么?
谢谢!
【问题讨论】: