【发布时间】:2014-04-28 22:38:31
【问题描述】:
我想在命名查询 (JPA 2.0) 中设置一个参数,因此我的 dataTable 将呈现相应的数据集。该参数是远程获取的并注入到 AbstractFacade 类中。
我尝试通过上面的代码来实现这一点,但它不起作用。 有人可以帮我吗?
AbstractFacade(主要代码):
private String prefDep;
public List<T> findByPrefDep() {
prefDep= FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("xPrefDep");
javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
cq.select(cq.from(entityClass));
return getEntityManager().createQuery(cq).setParameter("prefDep", prefDep).getResultList();
}
Entity 类(主要代码):
@NamedQuery(name = "Capacitacao.findByPrefDep", query = "SELECT c FROM Capacitacao c WHERE c.prefDep = :prefDep"),
抽象控制器:
public Collection<T> getItems() {
if (items == null) {
items = this.ejbFacade.findByPrefDep();
}
return items;
}
没有异常启动,但是渲染的dataSet对应一个findAll命名的查询。
提前致谢。
【问题讨论】: