Session 如何在JPA命名查询中设置Http会话参数

Session 如何在JPA命名查询中设置Http会话参数,session,jpa,ejb,Session,Jpa,Ejb,我想在命名查询(JPA2.0)中设置一个参数,这样我的dataTable将呈现相应的数据集。参数是远程获取的,并注入到AbstractFacade类中 我试图通过上面的代码来实现这一点,但它不起作用。 有人能帮我吗 AbstractFacade(主代码): 抽象控制器: public Collection<T> getItems() { if (items == null) { items = this.ejbFacade.findByPrefDep();

我想在命名查询(JPA2.0)中设置一个参数,这样我的dataTable将呈现相应的数据集。参数是远程获取的,并注入到AbstractFacade类中

我试图通过上面的代码来实现这一点,但它不起作用。 有人能帮我吗

AbstractFacade(主代码):

抽象控制器:

public Collection<T> getItems() {
    if (items == null) {
        items = this.ejbFacade.findByPrefDep();
    }
    return items;
}
公共集合getItems(){ if(items==null){ items=this.ejbFacade.findByPrefDep(); } 退货项目; } 没有启动异常,但呈现的数据集对应于一个findAll命名查询


提前感谢。

您的代码根本不使用命名查询。命名查询有一个名称,而您的代码在任何地方都不使用该名称

使用

你可以通过阅读这本书来发现这一点

@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;
}
getEntityManager().createNamedQuery("Capacitacao.findByPrefDep", Capacitacao.class)
                  .setParameter("prefDep", prefDep)
                  .getResultList();