У меня проблема с моим запросом в приложении весенней загрузки / angular, использующем @ Query.
@Query(value =" SELECT "
+ " flow.ID, "
+ " min(flow.CONTEXTTIMESTAMP) contextTime, "
+ " state.LOGROLE, "
+ " trait.ETAT, "
+ " CONCAT(' ',CONCAT(ac.NAME, CONCAT('=',ac.VALUE))) as idf "
+ "FROM "
+ "FLOW flow "
+ "INNER JOIN LOG trc ON flow.ID= trc.ID"
+ "INNER JOIN APPLICATION ac ON flow.ID= ac.ID"
+ "LEFT OUTER JOIN PROCESS trait ON flow.ID= trait.ID"
+ "LEFT OUTER JOIN STATE state ON flow.ID= state.ID"
+ "WHERE "
+" flow.FLOWCODE = ?3 "
+ "AND flow.CONTEXTTIMESTAMP BETWEEN ?1 AND ?2 "
+ "AND CONCAT(' ',CONCAT(ac.NAME, CONCAT('=',ac.VALUE))) = ?4 "
+ "AND trait.etat = ?5 "
+ "AND trc.LOGROLE = ?6 "
+ "GROUP BY "
+ "flow.ID, "
+ "state.LOGROLE, "
+ "trait.ETAT, "
+ "ac.NAME, "
+ "ac.VALUE "
+ "ORDER BY " + " contextTime desc, flow.ID, idf ", nativeQuery = true)
public List <FlowDto> fetchAllProcessContextWithCriteria(
String startDate, String endDate, String flowCode,String idf, String etat, String status );
В некоторых случаях некоторые параметры моего метода могут быть нулевыми или пустыми, поскольку они приходят из моей angular формы. Я хотел бы проигнорировать предложение WHERE для этих параметров, если они пустые или нулевые (например, idf или status), не могу сделать это на самом деле.
Кстати, если у вас есть идея или совет оптимизировать запрос, я буду рад услышать:)
Всем хорошего дня.