manager.createQuery("Select p from "+Counter.class.getName()+" p where
machine_id="+machine.getId()+" and counter = C1",Counter.class).getSingleResult();
Quando não encontra nenhum valor que entre no where. Ele da um erro.
Aug 02, 2016 5:05:10 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [dispatcher] in context with path [/PosReport] threw exception [Request processing failed; nested exception is javax.persistence.NoResultException: No entity found for query] with root cause
javax.persistence.NoResultException: No entity found for query
Em especifico de uma maquina nao tem o tal do C1, como posso tratar que, quando não vier nada é para ele ir pro próximo?
varias tabelas. eu consegui resolver de outra forma.
List<Counter> listCounter = manager.createQuery("Select p from "+Counter.class.getName()+" p where machine_id="+machine.getId(),Counter.class).getResultList();
long c1=0;
long c2=0;
for (Counter counter : listCounter) {
if(counter.getCounter().equals("C1")&&counter.getMachineId()==machine.getId()){
c1 = counter.getValue();
}
if(counter.getCounter().equals("C2")&&counter.getMachineId()==machine.getId()){
c2 = counter.getValue();
}
}
long calc = c1-c2;
return calc;
}```
quando nao tem ele nao faz o calculo. mas eu gostaria de saber porque o getSingleResult nao é bem vindo... andei pesquisando e parece que nao é uma boa pratica usarmos... Mas se eu só quero 1 resultado, qual é o problema?