У меня такой запрос:
StringBuilder sql= new StringBuilder("SELECT DISTINCT
//
//
"AND 10000 * A.HAYTZY + 100 * A.HAYTZA + A.HAYTZG BETWEEN "
for (int i = 0; i < arrayList.size(); i++) {
sql.append(" (A.HAYPTP = " + arrayList.get(i).getProductCode() +
" AND A.HAYFOR = " + arrayList.get(i).getProductSubCode() + ") OR ");
}
sql.append(" (1 = 2))");
Итак, в репозитории я должен запросить его.
Как здесь: https://www.logicbig.com/tutorials/spring-framework/spring-data/query-named-parameters.html
@Query("SELECT e FROM Employee e WHERE e.dept = :dept AND "
+ "(SELECT COUNT(DISTINCT e2.salary) FROM Employee e2 "
+ "WHERE e.salary < e2.salary AND e2.dept = :dept) < :topSalNum "
+ "ORDER BY e.salary DESC")
List<Employee> findByDeptTopNSalaries(@Param("topSalNum") long topSalaryNum, @Param("dept") String dept);
Итак, для моего запроса я могу сделать что-то подобное?
"SELECT DISTINCT
//
//
"AND 10000 * A.HAYTZY + 100 * A.HAYTZA + A.HAYTZG BETWEEN :forLoop
sql.append(" (1 = 2))"
List<Object> getObjects(@Param("forLoop") String forLoop);
И из службы я делаю это, чтобы вызвать этот запрос:
String forLoop = for (int i = 0; i < arrayList.size(); i++) {
forLoop .append(" (A.HAYPTP = " + arrayList.get(i).getProductCode() +
" AND A.HAYFOR = " + arrayList.get(i).getProductSubCode() + ") OR ");
}
repo.getObjects(forLoop );