Spring mvc: ошибка хранилища jpa для пользовательских запросов - PullRequest
0 голосов
/ 23 января 2019

Я использую репозиторий jpa для пользовательского запроса. но я получаю ошибку

Журнал ошибок:

Неудовлетворенная зависимость, выраженная через поле 'loginService'; вложенное исключение: org.springframework.beans.factory.UnsatisfiedDependencyException: ошибка при создании bean-компонента с именем 'loginService': неудовлетворительная зависимость, выраженная через поле 'loginServiceImpl'; вложенное исключение - org.springframework.beans.factory.BeanCreationException: ошибка создания бина с именем 'loginServiceImpl': сбой вызова метода init; вложенным исключением является java.lang.IllegalArgumentException: проверка не удалась для запроса для метода public abstract java.util.List com.facultyProject.faculty_project.service.LoginServiceImpl.fetchByLoginId (java.lang.String, java.lang.String) * 1006


Класс репозитория

package com.facultyProject.faculty_project.service;

import com.facultyProject.faculty_project.dao.Login;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface LoginServiceImpl extends JpaRepository<Login,Long> {


   @Query("select e FROM Login e WHERE e.login_id =(:loginId) and e.password=(:password)")
    List<Login> fetchByLoginId(@Param("loginId") String loginId, @Param("password") String password);

}

Журнал ошибок

2019-01-23 11: 44: 15.803 ОШИБКА 8796 --- [nio-8181-exec-3] oaccC [. [. [/]. [DispatcherServlet]: Servlet.service () для сервлета [dispatcherServlet] в контексте с путем [] выдало исключение [Ошибка обработки запроса; вложенное исключение - java.lang.IllegalStateException: первичный или конструктор по умолчанию для класса java.lang.Boolean] не найден с коренной причиной

java.lang.NoSuchMethodException: java.lang.Boolean. () at java.lang.Class.getConstructor0 (Class.java:3082) ~ [na: 1.8.0_171] at java.lang.Class.getDeclaredConstructor (Class.java:2178) ~ [na: 1.8.0_171] at org.springframework.web.method.annotation.ModelAttributeMethodProcessor.createAttribute (ModelAttributeMethodProcessor.java:208) ~ [spring-web-5.0.10.RELEASE.jar: 5.0.10.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.ServletModelAttributeMethodProcessor.createAttribute (ServletModelAttributeMethodProcessor.java:84) ~ [spring-webmvc-5.0.10.RELEASE.RELEASE.RELEASE.jar at org.springframework.web.method.annotation.ModelAttributeMethodProcessor.resolveArgument (ModelAttributeMethodProcessor.java:131) ~ [spring-web-5.0.10.RELEASE.jar: 5.0.10.RELEASE] at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument (HandlerMethodArgumentResolverComposite.java:124) ~ [spring-web-5.0.10.RELEASE.jar: 5.0.10.RELASE] at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues ​​(InvocableHandlerMethod.java:161) ~ [spring-web-5.0.10.RELEASE.jar: 5.0.10.RELEASE] в org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest (InvocableHandlerMethod.java:131) ~ [spring-web-5.0.10.RELEASE.jar: 5.0.10.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle (ServletInvocableHandlerMethod.java:102) ~ [spring-webmvc-5.0.10.RELEASE.jELE: 5.0.10. at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod (RequestMappingHandlerAdapter.java:891) ~ [spring-webmvc-5.0.10.RELEASE.jar: 5.0.10.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal (RequestMappingHandlerAdapter.java:797) ~ [spring-webmvc-5.0.10.RELEASE.jar: 5.0.10.RELEASE] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle (AbstractHandlerMethodAdapter.java:87) ~ [spring-webmvc-5.0.10.RELEASE.jar: 5.0.10.RELEASE] в org.springframework.web.servlet.DispatcherServlet.doDispatch (DispatcherServlet.java:991) ~ [spring-webmvc-5.0.10.RELEASE.jar: 5.0.10.RELEASE] в org.springframework.web.servlet.DispatcherServlet.doService (DispatcherServlet.java:925) ~ [spring-webmvc-5.0.10.RELEASE.jar: 5.0.10.RELEASE] в org.springframework.web.servlet.FrameworkServlet.processRequest (FrameworkServlet.java:974) ~ [spring-webmvc-5.0.10.RELEASE.jar: 5.0.10.RELEASE]в org.springframework.web.servlet.FrameworkServlet.doPost (FrameworkServlet.java:877) ~ [spring-webmvc-5.0.10.RELEASE.jar: 5.0.10.RELEASE] в javax.servlet.http.HttpServlet.service (HttpServlet.java:661) ~ [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.springframework.web.servlet.FrameworkServlet.service (FrameworkServlet.java:851) ~ [spring-webmvc-5.0.10.RELEASE.jar: 5.0.10.RELEASE] на javax.servlet.http.HttpServlet.service (HttpServlet.java:742) ~ [tomcat-embed-core-8.5.34.jar: 8.5.34] в организации.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:231) ~ [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilter.java: 166) ~ [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.tomcat.websocket.server.WsFilter.doFilter (WsFilter.java:52) ~ [tomcat-embed-websocket-8.5.34.jar: 8.5.34] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) ~ [tomcat-embed-core-8.5.34.jar: 8.5.34] at org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) ~ [tomcat-embed-core-8.5.34.jar: 8.5.34] на org.springframework.web.filter.RequestContextFilter.doFilterInternal (RequestContextFilter.java:99) ~ [spring-web-5.0.10.RELEASE.jar: 5.0.10.RELEASE] в org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRejest: Once7) ~ [spring-web-5.0.10.RELEASE.jar: 5.0.10.RELEASE] по адресу org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) ~ [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) ~ [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal (HttpPutFormContentFilter.java:109) ~ [spring-web-5.0.10.RELEASE.jar: 5.0.10.RELEASE] в org.springframework.web.filter.OncePerRequestjilter: 107) ~ [spring-web-5.0.10.RELEASE.jar: 5.0.10.RELEASE] в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) ~ [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) ~ [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal (HiddenHttpMethodFilter.java-93)web-5.0.10.RELEASE.jar: 5.0.10.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:107) ~ [spring-web-5.0.10.RELEASE.jar: 5.0.10.RELEASE] в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) ~ [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) ~ [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal (CharacterEncoding:200) ~весна-веб-5.0.10.RELEASE.jar: 5.0.10.RELEASE] на org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:107) ~ [spring-web-5.0.10.RELEASE.jar: 5.0.10.RELEASE] на org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:193) ~ [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:166) ~ [-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:198) ~ [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:96) [tomcat-embed-core-8.5.34.jar: 8.5.34]в org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:493) [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve).java: 140) [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:81) [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:87) [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:342) [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.coyote.http11.Http11Processor.service (Http11Processor.java:800) [tomcat-embed-core-8.5.34.jar: 8.5.34] at org.apache.coyote.AbstractProcessorLight.process (AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.34.jar: 8.5.34]в org.apache.coyote.AbstractProtocol $ ConnectionHandler.process (AbstractProtocol.java:806) [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.java:1498) [tomcat-embed-core-8.5.34.jar: 8.5.34] в org.apache.tomcat.util.net.SocketProcessorBase.run (SocketProcessorBase.java:49) [tomcat-embed-core-8.5.34.jar: 8.5.34] в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) [na: 1.8.0_171] в java.util.concurrent.ThreadPoolExecutor$ Worker.run (ThreadPoolExecutor.java:624) [na: 1.8.0_171] at org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61) [tomcat-embed-core-8.5.34.jar: 8.5.34] at java.lang.Thread.run (Thread.java:748) [na: 1.8.0_171]

ссылка github для проекта

https://github.com/dishankgoyal/springsBoot/tree/master/faculty_project

Ответы [ 3 ]

0 голосов
/ 24 января 2019

в сущности нет поля с именем login_id , поэтому либо используйте login_name, либо id вместо login_id в запросе

Вам не нужно использовать пользовательский запрос (@Query(...))

используйте метод findByLogin_nameAndPassword(String login_name, String password); вместо

LoginServiceImpl должна быть реализацией Сервисный интерфейс , но вы использовали его в качестве хранилища и хранили в пакете сервисов, это неправильный способ структурирования кодовой базы.

0 голосов
/ 25 января 2019

Аннотация @Service должна указываться для класса реализации службы, а не для интерфейса.

0 голосов
/ 23 января 2019

Сообщение об ошибке указывает на наличие проблемы с синтаксисом запроса JPA. Попробуйте удалить скобки вокруг параметров и убедитесь, что e.login_id и e.password являются именами атрибутов из класса сущности Login (не имен столбцов базы данных).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...