Проблема с добавлением пользовательских функций в репозиторий данных Spring - PullRequest
2 голосов
/ 19 апреля 2019

Я получаю данные с помощью встроенных методов CrudRepository, но получаю ошибку при применении настроенного метода к хранилищу данных.

Это хранилище

@Repository
public interface EmployeeRepository extends CrudRepository<Employee, Integer> {
    List<Employee> findAllByEmployeeLastName(String last);
}

Это класс обслуживания

@Service
public class EmployeeService {

    private EmployeeRepository employeeRepository;

    @Autowired
    public EmployeeService(EmployeeRepository _employeeRepository) {
        employeeRepository = _employeeRepository;
    }

    public Iterable<Employee> findAll() {
        return employeeRepository.findAll();
    }

    public Employee findById(int id) {

        Optional<Employee> id_of_employee = employeeRepository.findById(id);

        Employee employee = null;

        if (id_of_employee.isPresent()) {
            employee = id_of_employee.get();
        } else {
            throw new RuntimeException("ID not found : " + id);
        }

        return employee;
    }

    public List<Employee> getEmployeeByLastName(String last) {
        return employeeRepository.findAllByEmployeeLastName(last);
    }
}

Это контроллер

@RestController
@RequestMapping("/api") public class EmployeeRestController {

    public EmployeeService employeeService;

    @Autowired
    public EmployeeRestController(EmployeeService _employeeService) {
        employeeService = _employeeService;
    }

    @GetMapping("/list_of_employees")
    public Iterable<Employee> getAllEmployees() {
        return employeeService.findAll();
    }

    @GetMapping("/find_an_employee_by_id/{id}")
    public Employee getAnEmplopyeeByID(@PathVariable int id) {
        Employee employee = employeeService.findById(id);

        if (employee == null) {
            throw new RuntimeException("ID not found : " + id);
        }

        return employee;

    }

    @RequestMapping("/find_employee_by_last_name/{last}")
    public List<Employee> getEmployeeByLastName(@PathVariable(value = "last") String last) {
        return employeeService.getEmployeeByLastName(last);
    }

}

getEmployeeByLastName() метод - это настраиваемый метод, который выдает ошибку. Нужно ли добавлять какой-нибудь XML-файл для запуска пользовательского метода? Или я ошибаюсь где-то еще? Буду очень признателен за любую помощь в этом.

Это класс сущностей

@Entity
@Table(name = "employees")
public class Employee {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;

    @Column(name = "first_name")
    private String first_name;

    @Column(name = "last")
    private String last;

    @Column(name = "salary")
    private double salary;

    @Column(name = "email")
    private String email;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getFirst_name() {
        return first_name;
    }

    public void setFirst_name(String first_name) {
        this.first_name = first_name;
    }

    public String getLast() {
        return last;
    }

    public void setLast(String last) {
        this.last= last;
    }

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public Employee() {
    }
}

Трассировка стека:

2019-04-19 15: 02: 16.563 INFO 3920 --- [restartedMain] com.project.ProjectApplication: запуск приложения ProjectApplication на DESKTOP-UGU4VD9 с ПИД 3920 (I: \ spring_boot_project_factory \ project_factory_1 \ section_1 \ Project \ целевых \ классы начато Субхой в I: \ spring_boot_project_factory \ project_factory_1 \ section_1 \ Project) 2019-04-19 15: 02: 16.570 INFO 3920 --- [restartedMain] com.project.ProjectApplication: активный профиль не установлен, возврат к профилям по умолчанию: по умолчанию 2019-04-19 15: 02: 16.759 ИНФОРМАЦИЯ 3920 --- [restartedMain] .e.DevToolsPropertyDefaultsPostProcessor: свойства Devtools по умолчанию активный! Установите «spring.devtools.add-properties» в «false», чтобы отключить 2019-04-19 15: 02: 16.760 ИНФОРМАЦИЯ 3920 --- [restartedMain] .e.DevToolsPropertyDefaultsPostProcessor: Для дополнительных веб-связанных при ведении журнала рассмотрите возможность установки для свойства 'logging.level.web' значения 'DEBUG' 2019-04-19 15: 02: 18.778 INFO 3920 --- [restartedMain] .s.d.r.c.RepositoryConfigurationDelegate: начальная загрузка данных Spring хранилища в режиме DEFAULT. 2019-04-19 15: 02: 18.917 INFO 3920 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate: Завершено Сканирование репозитория Spring Data за 120 мс. Найдено 1 хранилище интерфейсы. 2019-04-19 15: 02: 19.913 INFO 3920 --- [restartedMain] trationDelegate $ BeanPostProcessorChecker: Bean 'Org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' типа [Org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration $$ EnhancerBySpringCGLIB $$ ce5d542f] не может быть обработан всеми BeanPostProcessors (для пример: не имеет права на авто-проксирование) 2019-04-19 15: 02: 21.288 ИНФО 3920 --- [restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer: Tomcat инициализирован с портом (порциями): 8080 (http) 2019-04-19 15: 02: 21.348 ИНФОРМАЦИЯ 3920 --- [restartedMain] o.apache.catalina.core.StandardService : Запуск службы [Tomcat] 2019-04-19 15: 02: 21.348 INFO 3920 --- [ restartedMain] org.apache.catalina.core.StandardEngine: запуск Механизм сервлета: [Apache Tomcat / 9.0.17] 2019-04-19 15: 02: 21.765 ИНФОРМАЦИЯ 3920 --- [restartedMain] o.a.c.c.C. [Tomcat]. [Localhost]. [/]: Инициализация Spring встроенного WebApplicationContext 2019-04-19 15: 02: 21.765 INFO 3920 --- [restartedMain] o.s.web.context.ContextLoader: корневой WebApplicationContext: инициализация завершена за 5005 мс 2019-04-19 15: 02: 22.144 ИНФОРМАЦИЯ 3920 --- [restartedMain] com.zaxxer.hikari.HikariDataSource: HikariPool-1 - Starting ... 2019-04-19 15: 02: 22.455 INFO 3920 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource: HikariPool-1 - Начало завершено. 2019-04-19 15: 02: 22.541 INFO 3920 --- [restartedMain] o.hibernate.jpa.internal.util.LogHelper: HHH000204: Обработка PersistenceUnitInfo [имя: по умолчанию ...] 2019-04-19 15: 02: 22.738 INFO 3920 --- [restartedMain] org.hibernate.Version
: HHH000412: Hibernate Core {5.3.9.Final} 2019-04-19 15: 02: 22.741 ИНФОРМАЦИЯ 3920 --- [restartedMain] org.hibernate.cfg.Environment
: HHH000206: hibernate.properties не найден 2019-04-19 15: 02: 23.044 ИНФОРМАЦИЯ 3920 --- [restartedMain] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.0.4.Final} 2019-04-19 15: 02: 23.270 INFO 3920 --- [restartedMain]org.hibernate.dialect.Dialect: HHH000400: Использование диалекта: org.hibernate.dialect.MySQL5Dialect 2019-04-19 15: 02: 24.471 INFO 3920 --- [restartedMain] j.LocalContainerEntityManagerFactoryBean: Инициализированный JPA EntityManagerFactory для персистентного модуля «по умолчанию» 2019-04-19 15: 02: 24.510 INFO 3920 --- [restartedMain] o.s.b.d.a.OptionalLiveReloadServer: сервер LiveReload работает на порту 35729 2019-04-19 15: 02: 25.321 ПРЕДУПРЕЖДЕНИЕ 3920 --- [ restartedMain] ConfigServletWebServerApplicationContext: исключение встречается во время инициализации контекста - отмена обновления попытка: org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка создания бина с именем employeeRestController, определенным в файле [I: \ spring_boot_project_factory \ project_factory_1 \ section_1 \ Project \ \ целевые классы \ COM \ проекта \ контроллера \ EmployeeRestController.class]: Неудовлетворенная зависимость выражается через параметр конструктора 0; вложенное исключение org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании компонента с именем employeeService, определенным в файле [I: \ spring_boot_project_factory \ project_factory_1 \ section_1 \ Project \ \ целевые классы \ ком \ проекта \ сервис \ EmployeeService.class]: Неудовлетворенная зависимость выражается через параметр конструктора 0; вложенное исключение org.springframework.beans.factory.BeanCreationException: ошибка создание бина с именем employeeRepository: вызов init метод не удался; Вложенным исключением является java.lang.IllegalArgumentException: Не удалось создать запрос для метода public abstract java.util.List com.project.repository.EmployeeRepository.findByEmployeeLastName (java.lang.String)! Не найдено свойство employeeLastName для типа Employee! 2019-04-19 15: 02: 25.321 INFO 3920 --- [restartedMain] j.LocalContainerEntityManagerFactoryBean: закрытие JPA EntityManagerFactory для персистентного модуля 'default' 2019-04-19 15: 02: 25.334 INFO 3920 --- [restartedMain] com.zaxxer.hikari.HikariDataSource: HikariPool-1 - Завершение работы инициировано ... 2019-04-19 15: 02: 25.345 INFO 3920 --- [restartedMain] com.zaxxer.hikari.HikariDataSource: HikariPool-1 - Завершение работы завершено. 2019-04-19 15: 02: 25.348 INFO 3920 --- [restartedMain] o.apache.catalina.core.StandardService: Остановка службы [Tomcat] 2019-04-19 15: 02: 25.390 INFO 3920 --- [restartedMain] ConditionEvaluationReportLoggingListener:

Ошибка запуска ApplicationContext. Для отображения отчета об условиях перезапустите ваше приложение с включенной отладкой. 2019-04-19 15: 02: 25.409 ОШИБКА 3920 --- [restartedMain] o.s.boot.SpringApplication
: Ошибка запуска приложения

org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка создания бина с именем employeeRestController, определенным в файле [I: \ spring_boot_project_factory \ project_factory_1 \ section_1 \ Project \ \ целевые классы \ COM \ проекта \ контроллера \ EmployeeRestController.class]: Неудовлетворенная зависимость выражается через параметр конструктора 0; вложенное исключение org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании компонента с именем employeeService, определенным в файле [I: \ spring_boot_project_factory \ project_factory_1 \ section_1 \ Project \ \ целевые классы \ ком \ проекта \ сервис \ EmployeeService.class]: Неудовлетворенная зависимость выражается через параметр конструктора 0; вложенное исключение org.springframework.beans.factory.BeanCreationException: ошибка создание бина с именем employeeRepository: вызов init метод не удался; Вложенным исключением является java.lang.IllegalArgumentException: Не удалось создать запрос для метода public abstract java.util.List com.project.repository.EmployeeRepository.findByEmployeeLastName (java.lang.String)! Не найдено свойство employeeLastName для типа Employee! в org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray (ConstructorResolver.java:769)~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor (ConstructorResolver.java:218) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor (AbstractAutowireCapableBeanFactory.java:1341) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance (AbstractAutowireCapableBeanFactory.java:1187) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:555) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:515) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.AbstractBeanFactory.lambda $ doGetBean $ 0 (AbstractBeanFactory.java:320) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:222) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:318) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:199) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons (DefaultListableBeanFactory.java:849) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization (AbstractApplicationContext.java:877) ~ [spring-context-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:549) ~ [spring-context-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh (ServletWebServerApplicationContext.java:142) ~ [spring-boot-2.1.4.RELEASE.jar: 2.1.4.RELEASE] в org.springframework.boot.SpringApplication.refresh (SpringApplication.java:775) [spring-boot-2.1.4.RELEASE.jar: 2.1.4.RELEASE] в org.springframework.boot.SpringApplication.refreshContext (SpringApplication.java:397) [spring-boot-2.1.4.RELEASE.jar: 2.1.4.RELEASE] в org.springframework.boot.SpringApplication.run (SpringApplication.java:316) [spring-boot-2.1.4.RELEASE.jar: 2.1.4.RELEASE] в org.springframework.boot.SpringApplication.run (SpringApplication.java:1260) [spring-boot-2.1.4.RELEASE.jar: 2.1.4.RELEASE] в org.springframework.boot.SpringApplication.run (SpringApplication.java:1248) [spring-boot-2.1.4.RELEASE.jar: 2.1.4.RELEASE] в com.project.ProjectApplication.main (ProjectApplication.java:10) [classes /: na] at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Метод) ~ [na: 1.8.0_161] в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) ~ [na: 1.8.0_161] в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) ~ [na: 1.8.0_161] на java.lang.reflect.Method.invoke (Method.java:498) ~ [na: 1.8.0_161] в org.springframework.boot.devtools.restart.RestartLauncher.run (RestartLauncher.java:49) [spring-boot-devtools-2.1.4.RELEASE.jar: 2.1.4.RELEASE] Причина: org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании компонента с именем employeeService, определенным в файле [I: \ spring_boot_project_factory \ project_factory_1 \ section_1 \ Project \ \ целевые классы \ ком \ проекта \ сервис \ EmployeeService.class]:Неудовлетворенная зависимость выражается через параметр конструктора 0; вложенное исключение org.springframework.beans.factory.BeanCreationException: ошибка создание бина с именем employeeRepository: вызов init метод не удался; Вложенным исключением является java.lang.IllegalArgumentException: Не удалось создать запрос для метода public abstract java.util.List com.project.repository.EmployeeRepository.findByEmployeeLastName (java.lang.String)! Не найдено свойство employeeLastName для типа Employee! в org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray (ConstructorResolver.java:769) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor (ConstructorResolver.java:218) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor (AbstractAutowireCapableBeanFactory.java:1341) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance (AbstractAutowireCapableBeanFactory.java:1187) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:555) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:515) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.AbstractBeanFactory.lambda $ doGetBean $ 0 (AbstractBeanFactory.java:320) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:222) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:318) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:199) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate (DependencyDescriptor.java:277) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency (DefaultListableBeanFactory.java:1247) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency (DefaultListableBeanFactory.java:1167) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument (ConstructorResolver.java:857) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray (ConstructorResolver.java:760) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] ... 24 общих кадра опущено org.springframework.beans.factory.BeanCreationException: ошибка создание бина с именем employeeRepository: вызов init метод не удался; Вложенным исключением является java.lang.IllegalArgumentException: Не удалось создать запрос для метода public abstract java.util.List com.project.repository.EmployeeRepository.findByEmployeeLastName (java.lang.String)! Не найдено свойство employeeLastName для типа Employee! в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory.java:1778) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:593)~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:515-5.1-spring.RELEASE.jar: 5.1.6.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda $ doGetBean $ 0 (AbstractBeanFactory.java:320) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:222) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframe.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:318) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:199) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate (DependencyDescriptor.java:277 ~)[весенне-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency (DefaultListableBeanFactory.java:1247) ~ [spring-beans-5.1.6.RELEASE.jar:.6.RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency (DefaultListableBeanFactory.java:1167) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.spring.beans.factory.support.ConstructorResolver.resolveAutowiredArgument (ConstructorResolver.java:857) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] в org.springframework.beans.factory.support.ConstructorResol.createArgumentArray (ConstructorResolver.java:760) ~ [spring-beans-5.1.6.RELEASE.jar: 5.1.6.RELEASE] ... пропущено 38 общих фреймов. Причина: java.lang.IllegalArgumentException: не удалось создать запрос для методаобщедоступный абстрактный java.util.List com.project.repository.EmployeeRepository.findByEmployeeLastName (java.lang.String)!Не найдено свойство employeeLastName для типа Employee!в org.springframework.data.jpa.repository.query.PartTreeJpaQuery. (PartTreeJpaQuery.java:84) ~ [spring-data-jpa-2.1.6.RELEASE.jar: 2.1.6.RELEASE] в org.springframework.data.jpa.repository.query.repository.query.JpaQueryLookupStrategy $ CreateIfNotFoundQueryLookupStrategy.resolveQuery (JpaQueryLookupStrategy.java:211) ~ [spring-data-jpa-2.1.6.RELEASE.jar: 2.1.6.,QueryExecutorMethodInterceptor.lookupQuery (RepositoryFactorySupport.java:566) ~ [spring-data-commons-2.1.6.RELEASE.jar: 2.1.6.RELEASE] в org.springframework.data.repository.core.support.RepositoryFactorySupport $ QueryExecutorMethodInterceptor.lambda $ mapMethodsToQuery $ 1 (RepositoryFactorySupport.java:559) ~ [spring-data-commons-2.1.6.RELEASE.jar: 2.1.6.RELEASE] в java.util $ 1.accept (ReferencePipeline.java:193) ~ [na: 1.8.0_161] в java.util.Iterator.forEachRemaining (Iterator.java:116) ~ [na: 1.8.0_161] в java.util.Collections $ UnmodifiableCollection $ 1.forEachRemaining(Collections.java:1049) ~ [na: 1.8.0_161] в java.util.Spliterators $ IteratorSpliterator.forEachRemaining (Spliterators.java:1801) ~ [na: 1.8.0_161] в java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~ [na: 1.8.0_161] в java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:471) ~ [na: 1.8.0_161] в java.util.stream.ReduceOps $ ReduceOp.evaluateSequential (ReduceOps.java:708) ~ [na: 1.8.0_161] вjava.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234) ~ [na: 1.8.0_161] в java.util.stream.ReferencePipeline.collect (ReferencePipeline.java:499) ~ [na: 1.8.0_161] вorg.springframework.data.repository.core.support.RepositoryFactorySupport $ QueryExecutorMethodInterceptor.mapMethodsToQuery (RepositoryFactorySupport.java:561) ~ [spring-data-commons-2.1.6.RELEASE.rawork..data.repository.core.support.RepositoryFactorySupport $ QueryExecutorMethodInterceptor.lambda $ new $ 0 (RepositoryFactorySupport.java:551) ~ [spring-data-commons-2.1.6.RELEASE.jar: 2.1.6.RELEASEu] в java.Optional.map (Optional.java:215) ~ [na: 1.8.0_161] at org.springframework.data.repository.core.support.RepositoryFactorySupport $ QueryExecutorMethodInterceptor. (RepositoryFactorySupport.java:551-commons) [spring-2.1.6.RELEASE.jar: 2.1.6.RELEASE] at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository (RepositoryFactorySupport.java:324) ~ [spring-data-commons-2.1.6.RELEASE.jar: 2.1.6.RELEASE] at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.lambda $ afterPropertiesSet $ ​​5 (RepositoryFactoryBeanSupport.java:29-) -commons-2.1.6.RELEASE.jar: 2.1.6.RELEASE] at org.springframework.data.util.Lazy.getNullable (Lazy.java:211) ~ [spring-data-commons-2.1.6.RELEASE.jar: 2.1.6.RELEASE] в org.springframework.data.util.Lazy.get (Lazy.java:94) ~ [spring-data-commons-2.1.6.RELEASE.jar: 2.1.6.RELEASE] в org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet (RepositoryFactoryBeanSupport.java:300) ~ [spring-data-commons-2.1.6.RELEASE.jar: 2.1.6.RELEASEing. org.sprjpa.repository.support.JpaRepositoryFactoryBean.afterPropertiesSet (JpaRepositoryFactoryBean.java:121) ~ [spring-data-jpa-2.1.6.RELEASE.jar: 2.1.6..invokeInitMethods (AbstractAutowireCapableBeanFactory.java:1837) ~ [spring-beans-5.1.6. RELEASE.jar: 5.1.6.jar: 5.1.6.RELEASE] ... пропущены 49 общих фреймов. Причина: org.springframework.data.mapping.PropertyReferenceException: не найдено свойство employeeLastName для типа Employee!в org.springframework.data.mapping.PropertyPath. (PropertyPath.java:94) ~ [spring-data-commons-2.1.6.RELEASE.jar: 2.1.6.RELEASE] в org.springframework.data.mapping.PropertyPath.create (PropertyPath.java:382) ~ [spring-data-commons-2.1.6.RELEASE.jar: 2.1.6.RELEASE] в org.springframework.data.mapping.PropertyPath.create (PropertyPath.java:358)~ [spring-data-commons-2.1.6.RELEASE.jar: 2.1.6.RELEASE] в org.springframework.data.mapping.PropertyPath.lambda $ от $ 0 (PropertyPath.java:311) ~ [spring-data-commons-2.1.6.RELEASE.jar: 2.1.6.RELEASE] в java.util.concurrent.ConcurrentMap.computeIfAbsent (ConcurrentMap.java:324) ~ [na: 1.8.0_161] в org.springframework.data.mapping.PropertyPath.from (PropertyPath.java:293) ~ [spring-data-commons-2.1.6.RELEASE.jar: 2.1.6.RELEASE] в org.springframework.data.mapping.PropertyPath.from (PropertyPath.java:276) ~ [spring-data-commons-2.1.6.RELEASE.jar: 2.1.6.RELEASE] в org.springframework.data.repository.query.parser.Part. (Part.java:81) ~ [spring-data-commons-2.1.6.RELEASE.jar: 2.1.6.RELEASE] at org.springframework.data.repository.query.parser.PartTree $ OrPart.lambda $ new $ 0 (PartTree.java:250) ~ [spring-data-commons-2.1.6.RELEASE.jar: 2.1.6.RELEASE] на java.util.stream.ReferencePipeline $ 3 $ 1.accept (ReferencePipeline.java:193) ~ [na: 1.8.0_161] на java.util.stream.ReferencePipeline $ 2 $ 1.accept (ReferencePipeline.java:175) ~ [na: 1.8.0_161] вjava.util.Spliterators $ ArraySpliterator.forEachRemaining (Spliterators.java:948) ~ [na: 1.8.0_161] в java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:481) ~ [na: 1.8.0_161] вjava.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:471) ~ [na: 1.8.0_161] at java.util.stream.ReduceOps $ ReduceOp.evaluateSequential (ReduceOps.java:708) ~ [na: 1.8.0_161] в java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234) ~ [na: 1.8.0_161] в java.util.stream.ReferencePipeline.collect (ReferencePipeline.java:499) ~ [na: 1.8.0_161] at org.springframework.data.repository.query.parser.PartTree $ OrPart. (PartTree.java:251) ~ [spring-data-commons-2.1.6.RELEASE.jar: 2.1.6.RELEASE] в орг.springframework.data.repository.query.parser.PartTree $ Predicate.lambda $ new $ 0 (PartTree.java:380) ~ [spring-data-commons-2.1.6.RELEASE.jar: 2.1.6.RELEASE] в Java.util.stream.ReferencePipeline $ 3 $ 1.accept (ReferencePipeline.java:193) ~ [na: 1.8.0_161] at java.util.stream.ReferencePipeline $ 2 $ 1.accept (ReferencePipeline.java:175) ~ [na: 1.8.0_161] в java.util.Spliterators $ ArraySpliterator.forEachRemaining (Spliterators.java:948) ~ [na: 1.8.0_161] в java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:481) ~ [na: 1.8.0_161] в java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:471) ~ [na: 1.8.0_161] в java.util.stream.ReduceOps $ ReduceOp.valuSequential (ReduceOps.java:708) ~ [na: 1.8.0_161] в java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234) ~ [na: 1.8.0_161] в java.util.stream.ReferencePipeline.собирать (ReferencePipeline.java:499) ~ [na: 1.8.0_161] в org.springframework.data.repository.query.parser.PartTree $ Predicate. (PartTree.java:381) ~ [spring-data-commons-2.1.6.RELEASE.jar: 2.1.6.RELEASE] в org.springframework.data.repository.query.parser.PartTree. (PartTree.java:96) ~ [spring-data-commons-2.1.6.RELEASE.jar:2.1.6.RELEASE] at org.springframework.data.jpa.repository.query.PartTreeJpaQuery. (PartTreeJpaQuery.java:78) ~ [spring-data-jpa-2.1.6.RELEASE.jar: 2.1.6.RELEASE] ... опущено 75 общих кадров

1 Ответ

2 голосов
/ 19 апреля 2019

В логах указано, что

Не удалось создать запрос для метода public abstract java.util.List com.project.repository.EmployeeRepository.findByEmployeeLastName (java.lang.String)! Не найдено свойство employeeLastName для типа Employee

Ваше имя метода в EmployeeRepository должно быть findAllByLast(String last);

Кроме того, я бы рекомендовал прочитать о соглашениях по Java-кодированию и именованию, чтобы избежать подобных ошибок.

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