org.springframework.beans.factory.BeanCreationException: ошибка при создании bean-компонента с именем "projectTaskRepository" - PullRequest
1 голос
/ 14 июля 2020

Я делаю проект при весенней загрузке ... но получил эту ошибку при запуске приложения. Возможно, это ошибка базы данных H2. Но для устранения ошибки локальный хост должен работать, но программа завершается до его развертывания .. поэтому я не мог увидеть, в чем проблема.

Ошибка: org.springframework.beans.factory.BeanCreationException: Ошибка создания bean-компонент с именем 'projectTaskRepository', определенным в com.agileintelligence.projectdashboard.repository.ProjectTaskRepository, определенным в @EnableJpaRepositories, объявленных в JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: не удается разрешить ссылку на bean-компонент 'jpaMappingContext' при установке отображения свойства 'jpaMappingContext'; вложенное исключение - org.springframework.beans.factory.BeanCreationException: ошибка создания bean-компонента с именем 'jpaMappingContext': не удалось вызвать метод инициализации; вложенное исключение - org.hibernate.AnnotationException: для объекта не указан идентификатор: com.agileintelligence.projectdashboard.domain.projectTask

Класс таблицы

package com.agileintelligence.projectdashboard.domain;
import org.springframework.data.annotation.Id;
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.validation.constraints.NotBlank;

@Entity
public class projectTask {

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

@NotBlank(message = "Summary cannot be empty")
private String summary;
private String acceptanceCriteria;
private String status;

public projectTask() {
}

public long getId() {
    return id;
}

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

public String getSummary() {
    return summary;
}

public void setSummary(String summary) {
    this.summary = summary;
}

public String getAcceptanceCriteria() {
    return acceptanceCriteria;
}

public void setAcceptanceCriteria(String acceptanceCriteria) {
    this.acceptanceCriteria = acceptanceCriteria;
}

public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}
}

Контроллер

package com.agileintelligence.projectdashboard.web;

import com.agileintelligence.projectdashboard.domain.projectTask;
import com.agileintelligence.projectdashboard.service.ProjectTaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api/board")
@CrossOrigin
public class ProjectTaskController {

    @Autowired
    private ProjectTaskService service;

    @PostMapping("")
    public ResponseEntity<?> addProjectTaskToBoard(@RequestBody projectTask projectTask){

        com.agileintelligence.projectdashboard.domain.projectTask newPT = service.saveOrUpdateProjectTask(projectTask);
        return new ResponseEntity<>(newPT, HttpStatus.CREATED);
    }
}

Класс обслуживания

package com.agileintelligence.projectdashboard.service;

import com.agileintelligence.projectdashboard.domain.projectTask;
import com.agileintelligence.projectdashboard.repository.ProjectTaskRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class ProjectTaskService {

    @Autowired
    private ProjectTaskRepository projectTaskRepository;

    public projectTask saveOrUpdateProjectTask(projectTask projectTask){

        //In case if status is not set,automatically push it to TO_DO
        if(projectTask.getStatus()==null||projectTask.getStatus().equals("")){
            projectTask.setStatus("TO_DO");
        }
        return projectTaskRepository.save(projectTask);
    }
}

Репозиторий

package com.agileintelligence.projectdashboard.repository;

import com.agileintelligence.projectdashboard.domain.projectTask;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface ProjectTaskRepository extends CrudRepository<projectTask,Long> {

}

1 Ответ

1 голос
/ 14 июля 2020

Вы используете неправильный импорт для идентификатора здесь.

import org.springframework.data.annotation.Id;

Замените приведенный выше на приведенный ниже из пакета сохранения.

import javax.persistence.Id

Бонус: переименуйте свою сущность с помощью ProjectTask ( P в верхнем регистре), чтобы предотвратить странные проблемы в будущем.

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