#java #spring #jpa
Вопрос:
Я хочу получить список своих объектов с помощью jpa-запроса, я использую этот код:
@Query("select vz from VzClass vz"
"join vz.PHClass phc on vz.ph = phc.id"
"join phc.GFClass gf on phc.id = gf.phouse"
"join gf.PIClass pi on gf.pic = pi.id"
"where vz.fi is not null and vz.ci is null and pi.prId in (:pIds)")
List<VzClass> getVzByPIids(@Param("pIds") List<String> plIds, Pageable pageable);
Но я получаю исключение:
unexpected token: vz"
В чем там проблема?
Ответ №1:
В конце строковых литералов отсутствуют пробелы. Например, после объединения результат выглядит так «…из VzClass соединяйся с vz.PHClass…». Это должно выглядеть так
@Query("select vz from VzClass vz "
"join vz.PHClass phc on vz.ph = phc.id "
"join phc.GFClass gf on phc.id = gf.phouse "
"join gf.PIClass pi on gf.pic = pi.id "
"where vz.fi is not null and vz.ci is null and pi.prId in (:pIds) ")
Ответ №2:
Вам нужно сбежать с концом строки или пробелом, вот так:
@Query("select vz from VzClass vzn"
"join vz.PHClass phc on vz.ph = phc.idn"
"join phc.GFClass gf on phc.id = gf.phousen"
"join gf.PIClass pi on gf.pic = pi.idn"
"where vz.fi is not null and vz.ci is null and pi.prId in (:pIds)")
List<VzClass> getVzByPIids(@Param("pIds") List<String> plIds, Pageable pageable);