我有一个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;
}
我在做什么:
从名为“procesos”的视图中包含一个表格,我点击表格中的任何“过程”,然后我会查看其详细信息(将“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;
}
}
如果我在查询中使用distinct它没有任何区别,我只得到2行,并且我确信在数据库中有4行具有相同的“id proceso”和不同的值。
答案 0 :(得分:1)
我解决了..这是因为我正在使用视图而我没有为其中一个设置正确的ID(我必须将@Id添加到实体的一个属性中)