【发布时间】:2020-11-04 00:14:34
【问题描述】:
我正在 Spring Boot 上做项目...但在运行应用程序时出现此错误。可能是 H2 数据库错误。但是要解决错误 localhost 应该运行但程序在部署之前终止..所以我无法看到实际问题是什么。
错误:org.springframework.beans.factory.BeanCreationException:创建 com.agileintelligence.projectdashboard.repository.ProjectTaskRepository 中定义的名称为“projectTaskRepository”的 bean 时出错jpaMappingContext' 同时设置 bean 属性'mappingContext';嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“jpaMappingContext”的 bean 时出错:调用 init 方法失败;嵌套异常是 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> {
}
【问题讨论】:
-
你的数据库中创建了序列吗?
-
我无法打开控制台....因为本地主机没有运行。它终止并最终。
-
删除@GeneratedValue(strategy = GenerationType.IDENTITY) 并启动应用程序。您可能缺少 Hibernate 在启动时所需的顺序。
-
@MladenSavić 删除“@GeneratedValue”并运行应用程序...但没有运气..仍然显示相同的错误..
标签: java spring spring-boot spring-data-jpa h2