我有一個需要使用「動態」參數集的查詢。 但coundn't意識到如何做到這一點,我試圖不添加在哪裏字符串,但它給了我erros,因爲參數sets。休眠動態參數查詢
任何提示?
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。 –