У меня возникли проблемы с переводом мягко сложного (~ 8 sloc) SQL-запроса на язык HQL.Сортировка ошибок пути соединения HQL
Я занимаюсь этим днем, к сожалению, примеры в Интернете слишком тривиальны, чтобы быть какой-либо помощью. Я уменьшил свой запрос до наименьшего образца, который все еще дает ошибку пути. Любые подсказки будут оценены.
SQL (работ)
SELECT container_modulelist
FROM project.t_type
INNER JOIN project.t_module ON project.t_type.module_id =project.t_module.id
WHERE project.t_type.id = 111
HQL (дает присоединиться к ошибке путь)
@Query("
select module.container_modulelist
from Type type
join Module module on type.module_id = module.id
where type.id =111
")
Обновление: выше часть должна быть решена путем ответа ниже
Тем не менее, я до сих пор есть проблема, связанная с выполнением суб-запроса.
Я проверил раздел за пределами кронштейнов, и он отлично работает. Однако у меня возникла проблема с реализацией части в скобках (из приведенного ниже ответа), я бы хотел оценить суб-запрос и сравнить его, чтобы мой запрос возвращал значение, я видел, что это можно сделать с помощью HQL документация. В текущей форме суб-запрос не возвращается ни с чем, независимо от параметра. (?)
Эквивалент HQL (суб-запрос не работает):
@Query("
select value from Value value
where value.type.module.containerModuleList = (
select type.module.containerModuleList from Type type
where type.id =111) and value.name =yyy5
")
Value findOneByNameFromModuleList(@Param("id") Long id, @Param("name") String name);
Рабочая часть:
@Query("
select value from Value value
where value.type.module.containerModuleList = 1 and value.name =yyy5
")
Value findOneByNameFromModuleList(@Param("name") String name);
Got it. Мне не хватало аннотации в моем классе ресурсов. Таким образом, мои запросы не возвратили ничего найденного, когда у меня были оба параметра. Имел: 'Boolean isValueNameTaken (@PathVariable окончательного Длинный идентификатор, окончательное название String) публичное' Вместо: 'общественных Логическое isValueNameTaken (@PathVariable окончательного Длинного идентификатор, @PathVariable окончательного названия String)' – hardcore