Сформировал вот такой запрос:
@Query(value = "WITH RECURSIVE r AS (\n" +
" WITH b AS (\n" +
" SELECT min(t.id) min,\n" +
" (\n" +
" SELECT t.id\n" +
" FROM initial_data AS t\n" +
" WHERE vehicle_category_type = :categoryType\n" +
" ORDER BY t.id DESC\n" +
" LIMIT 1\n" +
" OFFSET :col - 1\n" +
" ) max\n" +
" FROM initial_data AS t\n" +
" WHERE vehicle_category_type = :categoryType\n" +
" ) (\n" +
" SELECT id,\n" +
" min,\n" +
" max,\n" +
" array []::bigint[] || id AS a,\n" +
" 0 AS n\n" +
" FROM initial_data AS t,\n" +
" b\n" +
" WHERE id >= min + ((max - min) * random())::int\n" +
" AND vehicle_category_type = :categoryType\n" +
" LIMIT 1\n" +
" )\n" +
" UNION ALL\n" +
" (\n" +
" SELECT t.id, min, max, a || t.id, r.n + 1 AS n\n" +
" FROM initial_data AS t,\n" +
" r\n" +
" WHERE t.id > min + ((max - min) * random())::int\n" +
" AND vehicle_category_type = :categoryType\n" +
" AND t.id <> all (a)\n" +
" AND r.n + 1 < :col\n" +
" LIMIT 1\n" +
" )\n" +
")\n" +
"SELECT t.*\n" +
"FROM initial_data AS t,\n" +
" r\n" +
"WHERE r.id = t.id"
, nativeQuery = true)
List<InitialData> findRandomByVehicleCategoryType(String categoryType, int col);
Получаю ошибку:
JdbcSQLSyntaxErrorException: Синтаксическая ошибка в выражении SQL "..."; ожидалось "[, ::, AT, FORMAT, *, /, %, +, -, ||, ~, !~, NOT, LIKE, ILIKE, REGEXP, IS, IN, BETWEEN, AND, OR, AS, ,, FROM, WHERE, GROUP, HAVING, WINDOW, QUALIFY, UNION, EXCEPT, MINUS, INTERSECT, ORDER, OFFSET, FETCH, LIMIT, SAMPLE_SIZE, FOR, )"
Хотя в консоли БД , запрос отрабатывает отлично.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я новичок в java, несколько дней назад хотел переустановить java на новую версию jdk 13 а у меня стоял 18_141, установил jdk 13 а путях все прописал, захожу...
Я использую EclipseLink JPA 21
Объясните пожалуйста буквально на пальцах, простыми словами, как работает многопоточность в javaЕсть вопросы на которые я не могу найти ТОЧНЫЙ...