я хочу выбрать данные из пользователей таблицы с помощью внутренней таблицы соединений users_role роль внутренней таблицы соединений с предложением where, но когда я создаю приложение, возникает ошибка
@Query(value = "select u from users u join users_role ur on u.id = ur.user_id join roles r on ur.role_id = r.id where r.role = 'ROLE_PL' ")
List<User> findPersonels();
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 8.287 s <<< FAILURE! - in com.backend.AuthentificationJwtApplicationTests
[ERROR] contextLoads(com.backend.AuthentificationJwtApplicationTests) Time elapsed: 0.004 s <<< ERROR!
java.lang.IllegalStateException: Failed to load ApplicationContext
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'personnelController': Unsatisfied dependency expressed through field 'repository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'personnelRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Validation failed for query for method public abstract java.util.List com.backend.repository.PersonnelRepository.findPersonels()!
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'personnelRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Validation failed for query for method public abstract java.util.List com.backend.repository.PersonnelRepository.findPersonels()!
Caused by: java.lang.IllegalArgumentException: Validation failed for query for method public abstract java.util.List com.backend.repository.PersonnelRepository.findPersonels()!
Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: users is not mapped [select u from users u join users_role ur on u.id = ur.user_id join roles r on ur.role_id = r.id where r.role = 'ROLE_PL' ]
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: users is not mapped [select u from users u join users_role ur on u.id = ur.user_id join roles r on ur.role_id = r.id where r.role = 'ROLE_PL' ]
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: users is not mapped
ну, @forpas, я попробовал это прямо в своей базе данных (sql), и это сработало, но когда я вставил его в «Query», он выдал мне ошибку о «*», я изменил его на u.id, а затем, выдал ту же ошибку "пользователи не сопоставлены"
Query ожидает запрос JPQL. JPQL — это не SQL. Это другой язык. Он работает не с таблицами и именами столбцов, а с сущностями, их свойствами и их ассоциациями. Прочтите документацию, чтобы узнать об этом: docs.jboss.org/hibernate/orm/current/userguide/html_single/…





Похоже, ваш запрос не является ни JPQL (users не является сущностью), ни SQL (вы не можете select <table alias> from ... в SQL).
Выберите один из двух, и если вы выберете SQL, добавьте nativeQuery=true к аннотации @Query.
Замените
select u fromнаselect u.* from