#spring-boot #jpa #spring-data-jpa
#пружинный ботинок #jpa #весна-данные-jpa
Вопрос:
Я использую собственный запрос для получения определенного набора результатов, так как при использовании LIMIT в JPA возникает конфликт. Когда я вызываю метод с помощью spring-boot, я получаю 1 строку, но когда я выполняю команду SQL напрямую, я получаю 5 строк. Я думаю, что это проблема с собственным запросом JPA, он всегда возвращает 1 строку.
@Query(value = "SELECTn" " DISTINCT pt1.******n" " FROMn" " ***** ptvt1 n" " INNER JOINn" " **** pt1 n" " ON ptvt1.****** = pt1.id n" " WHEREn" " pt1.id IN (n" " SELECTn" " ptvt2.****** n" " FROMn" " ***** ptvt2 n" " INNER JOINn" " ***** pt2 n" " ON ptvt2.****** = pt2.id n" " WHEREn" " ptvt2.******** = ptvt1.******** n" " ORDER BYn" " pt2.executiondate DESC LIMIT 1 n" " ) n" " AND NOT EXISTS (n" " SELECTn" " ptvt3.* n" " FROMn" " ***** ptvt3 n" " INNER JOINn" " ***** pt3 n" " ON ptvt3.****** = pt3.id n" " WHEREn" " ptvt3.******** = ptvt1.******** n" " AND (n" " pt3.status = 'OK' n" " OR pt3.status = 'CREATED' n" " OR pt3.status = 'PENDING' n" " OR pt3.status = 'VOID' n" " ) n" " )", nativeQuery = true) Listlt;Stringgt; find*****();
Комментарии:
1. Обновил его, но мне все же нужно замаскировать столбцы.
2. Списокlt;Строкаgt; найти*****()
3. Я не думаю, что ОГРАНИЧЕНИЕ 1 должно повлиять на него, так как это подзапрос, поэтому я в первую очередь использую NativeQuery.