"동적"매개 변수 집합을 사용해야하는 쿼리가 있습니다. 하지만 coundn't 그것을하는 방법을 실현, 나는 어디 문자열을 추가하려고하지만 그것은 erros를 제공하기 때문에 매개 변수가 설정되어 있습니다.최대 절전 모드 동적 매개 변수 쿼리
팁이 있습니까?
String queryS = "select object(c) from "
+ entityClassName + " as c " +
"where 1 = 1" ;
if(codigoPaciente.compareTo("") != 0)
{
queryS += " and c.CodigoDoPaciente =:paciente";
}
if(codServicoPrincipal.compareTo("") != 0)
queryS += " and c.codigoServicoPrincipal =:servico";
if(data != null)
queryS += " and c.codigoServicoPrincipal =:data";
if(TipoServico.compareTo("") != 0)
queryS += " and c.codigoServicoPrincipal =:tipoServico";
Query query = em.createQuery(queryS);
query.setParameter("paciente", codigoPaciente);
query.setParameter("codigoServicoPrincipal", codServicoPrincipal);
query.setParameter("data", data);
query.setParameter("tipoServico", TipoServico);
return query.getResultList();
다른 점; WHERE 절을 제거하고 어떤 조건이 이미 연결되었는지 확인하지 않고 AND 연결을 계속하면 및 으로 시작하는 기준을 갖게됩니다. 이것은 물론 당신에게 오류를 줄 것이다. –
"QUERY"개체가 아직 존재하지 않기 때문에 쿼리를 작성하는 IF에 매개 변수를 설정할 수 없습니다. –
if는 쿼리 개체를 분명히 만든 후에 사용하기위한 것입니다. –