Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 基于JPA查询初始化列表?_Jsf_Jpa - Fatal编程技术网

Jsf 基于JPA查询初始化列表?

Jsf 基于JPA查询初始化列表?,jsf,jpa,Jsf,Jpa,下午好。我有一个操作符列表,初始化如下 @ManagedBean @ViewScoped public class TiemposBean implements Serializable { @EJB private OperariosFacade operariosFacade; private List<Operarios> operariosList; @PostConstruct public void inicializarBe

下午好。我有一个操作符列表,初始化如下

@ManagedBean
@ViewScoped
public class TiemposBean implements Serializable {

    @EJB
    private OperariosFacade operariosFacade;

    private List<Operarios> operariosList;

    @PostConstruct
    public void inicializarBean() {
        operariosList = operariosFacade.findAll();
    }


    public List<Operarios> getOperariosList() {
        return operariosList;
    }

    public void setOperariosList(List<Operarios> operariosList) {
        this.operariosList = operariosList;
    }
}
@NamedQuery(name = "Operarios.findByNombreLista", query = "SELECT o FROM Operarios o WHERE o.idEstadoOperario = :idEstadoOperario AND o.tipoEstadoOperario = :tipoEstadoOperario"),
public void inicializarLista() {

    String namedQuery = "Operarios.findByNombreLista";
    Map<String, Object> parametros = new HashMap<>();
    parametros.put("idEstadoOperario", 1);
    parametros.put("tipoEstadoOperario", 1); 
    operariosList = operariosFacade.findByNamedQuery(namedQuery, parametros);
}
在我的JPQL查询中,如下所示

@ManagedBean
@ViewScoped
public class TiemposBean implements Serializable {

    @EJB
    private OperariosFacade operariosFacade;

    private List<Operarios> operariosList;

    @PostConstruct
    public void inicializarBean() {
        operariosList = operariosFacade.findAll();
    }


    public List<Operarios> getOperariosList() {
        return operariosList;
    }

    public void setOperariosList(List<Operarios> operariosList) {
        this.operariosList = operariosList;
    }
}
@NamedQuery(name = "Operarios.findByNombreLista", query = "SELECT o FROM Operarios o WHERE o.idEstadoOperario = :idEstadoOperario AND o.tipoEstadoOperario = :tipoEstadoOperario"),
public void inicializarLista() {

    String namedQuery = "Operarios.findByNombreLista";
    Map<String, Object> parametros = new HashMap<>();
    parametros.put("idEstadoOperario", 1);
    parametros.put("tipoEstadoOperario", 1); 
    operariosList = operariosFacade.findByNamedQuery(namedQuery, parametros);
}
我构建的调用该查询的方法如下所示

@ManagedBean
@ViewScoped
public class TiemposBean implements Serializable {

    @EJB
    private OperariosFacade operariosFacade;

    private List<Operarios> operariosList;

    @PostConstruct
    public void inicializarBean() {
        operariosList = operariosFacade.findAll();
    }


    public List<Operarios> getOperariosList() {
        return operariosList;
    }

    public void setOperariosList(List<Operarios> operariosList) {
        this.operariosList = operariosList;
    }
}
@NamedQuery(name = "Operarios.findByNombreLista", query = "SELECT o FROM Operarios o WHERE o.idEstadoOperario = :idEstadoOperario AND o.tipoEstadoOperario = :tipoEstadoOperario"),
public void inicializarLista() {

    String namedQuery = "Operarios.findByNombreLista";
    Map<String, Object> parametros = new HashMap<>();
    parametros.put("idEstadoOperario", 1);
    parametros.put("tipoEstadoOperario", 1); 
    operariosList = operariosFacade.findByNamedQuery(namedQuery, parametros);
}
public void inicializarLista(){
字符串namedQuery=“Operarios.findByNombreLista”;
Map parametros=newhashmap();
参数put(“idEstadoOperario”,1);
参数put(“tipoEstadoOperario”,1);
operariosList=operariosFacade.findByNamedQuery(namedQuery,ParameterOS);
}
还有我的豆子

@ManagedBean
@ViewScoped
public class TiemposBean implements Serializable {

    @EJB
    private OperariosFacade operariosFacade;

    private List<Operarios> operariosList;

    @PostConstruct
    public void inicializarBean() {
        operariosList = new ArrayList<>();
    }


    public List<Operarios> getOperariosList() {
        return operariosList;
    }

    public void setOperariosList(List<Operarios> operariosList) {
        this.operariosList = operariosList;
    }
}
@ManagedBean
@视域
公共类TiempsBean实现了可序列化{
@EJB
私人运营商;
私人名单运营商;
@施工后
公共空间在阿拉伯联合酋长国(){
operariosList=新的ArrayList();
}
公共列表getOperatariosList(){
返回操作列表;
}
公共作废设置操作列表(列表操作列表){
this.operariosList=operariosList;
}
}
在我看来,我称之为

<p:outputLabel for="somOperario" value="Operario"/>
<p:selectOneMenu id="somOperario" value="#{tiemposBean.operarioSeleccionado}"                         
                 filter="true"
                 converter="operariosConverter">
    <f:selectItem itemLabel="Seleccione uno"/>
    <f:selectItems value="#{tiemposBean.operariosList}"
                   var="operarioVar"
                   itemValue="#{operarioVar}"
                   itemLabel="#{operarioVar.nombre}"
                   />                 
</p:selectOneMenu>
<p:message for="somOperario" id="msg_somOperario"/>


但是我没有向我说明我做错了,我需要你的帮助。谢谢

根据您发布的代码,不会调用“inicializarLista”方法。您有一个托管bean,其中包含:

@PostConstruct
public void inicializarBean() {

     operariosList = new ArrayList<>();

}
请在
@PostConstruct
内调用
inicializarLista()
方法:

@PostConstruct
public void inicializarBean() {
      //This step is not necessary any more!
      operariosList = new ArrayList<>();

      inicializarLista();
}
@PostConstruct
公共空间在阿拉伯联合酋长国(){
//这一步不再需要了!
operariosList=新的ArrayList();
inicializarLista();
}

我相信你可以缩小范围。。。查询是否运行?它还东西吗?是否调用了
#{tiempsbean.operariosList}
?有人住吗?在99.9%的情况下,一个问题不是同时与jsf和jpa相关的(当然也不是mysql)。。。因此,请缩小范围,什么是调用您的inicializarLista方法来初始化列表?hi@Chris public void inicializarLista()在您修改的bean中,
inicializarBean()
仅实例化一个空列表。正如C.P.O的回答所提到的,您需要填充列表。修改后的客户端代码从不要求调用服务方法
inicializarLista()