Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/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
返回重复值的JPA查询_Jpa_Jsf 2_Jpa 2.0_Openjpa - Fatal编程技术网

返回重复值的JPA查询

返回重复值的JPA查询,jpa,jsf-2,jpa-2.0,openjpa,Jpa,Jsf 2,Jpa 2.0,Openjpa,我有一个jpa查询,它应该返回4行,它确实返回4行,但只有结果的前2行是可以的,接下来的2行是重复的第一行。不,第一行在数据库中不重复 这是我的疑问: public static List<DetalleProcesosEntity> getALLbyid(int id_proceso){ Query q = entityManager.createQuery("select a from DetalleProcesosEntity a where a.idProce

我有一个jpa查询,它应该返回4行,它确实返回4行,但只有结果的前2行是可以的,接下来的2行是重复的第一行。不,第一行在数据库中不重复

这是我的疑问:

public static List<DetalleProcesosEntity> getALLbyid(int id_proceso){
        Query q = entityManager.createQuery("select a from DetalleProcesosEntity a where a.idProceso=:id_proceso");
        q.setParameter("id_proceso", id_proceso);
        List<DetalleProcesosEntity>resultado=q.getResultList();
        List<DetalleProcesosEntity>result=new ArrayList<DetalleProcesosEntity>(resultado);
        return result;

    }
公共静态列表getALLbyid(int-id\u-proceso){
Query q=entityManager.createQuery(“从detalleprocesential a中选择a,其中a.idProceso=:id_proceso”);
q、 setParameter(“id_proceso”,id_proceso);
ListResultAndo=q.getResultList();
Listresult=新的ArrayList(resultado);
返回结果;
}
我所做的是:

从包含一个表的名为“proceos”的视图中,我单击表中的任何“proceos”,然后转到其详细信息(将“proceso”ID作为参数传递):

以下是支持bean的详细信息:

@ManagedBean(name = "det_procesos")
@ViewScoped
public class DetalleProcesosBean {

    private int idProceso;
    private List<DetalleProcesosEntity>detalles;
    @PostConstruct
    public void init(){
        FacesContext facesContext = FacesContext.getCurrentInstance();
        ExternalContext externalContext = facesContext.getExternalContext();
        //Obtener parametros del request
        Map<String, String> parameterMap = externalContext.getRequestParameterMap();
        idProceso = Integer.parseInt(parameterMap.get("id_proc"));
        detalles= Procesos.getALLbyid(idProceso);
    }

    public List<DetalleProcesosEntity> getDetalles() {
        return detalles;

    }

    public void setDetalles(List<DetalleProcesosEntity> detalles) {
        this.detalles = detalles;
    }

    public int getIdProceso() {
       return idProceso;
    }



    public void setIdProceso(int idProceso) {
        this.idProceso = idProceso;
    }
}
@ManagedBean(name=“det_procesos”)
@视域
公共类detalleprocessbean{
私营企业;
私人名单;
@施工后
公共void init(){
FacesContext FacesContext=FacesContext.getCurrentInstance();
ExternalContext=facesContext.getExternalContext();
//获取参数删除请求
Map parameterMap=externalContext.getRequestParameterMap();
idProceso=Integer.parseInt(参数map.get(“id_proc”);
detalles=proceos.getALLbyid(idProceso);
}
公共列表getDetalles(){
返回detalles;
}
公共作废集合明细表(列表明细表){
this.detalles=detalles;
}
public int getIdProceso(){
返回idProceso;
}
公共无效设置idProceso(int idProceso){
this.idProceso=idProceso;
}
}

如果我在查询中使用distinct,它没有任何区别,我只得到2行,我确信在数据库中有4行具有相同的“id proceso”和不同的值。

我解决了它。。这是因为我在处理视图,没有为其中一个视图设置正确的ID(我必须将@ID添加到实体的一个属性中)