Spring Boot中如何解决‘非空属性引用空值或瞬态值’异常
Spring Boot 创建员工API问题排查求助
我是一名Spring Boot初学者,目前处于学习阶段。我开发了一个创建员工并将信息保存到数据库的API,运行时遇到异常,谷歌搜索后没能找到解决方案,恳请帮忙解决。
EmployeeController类
package net.javaguides.springboot.controller; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import net.javaguides.springboot.model.Employee; import net.javaguides.springboot.service.EmployeeService; @RestController @RequestMapping("/api/employees") public class EmployeeController { private EmployeeService employeeService; public EmployeeController(EmployeeService employeeService) { super(); this.employeeService = employeeService; } // 构建创建员工的Rest API @PostMapping public ResponseEntity<Employee> saveEmployee(@RequestBody Employee employee) { return new ResponseEntity<Employee>(employeeService.saveEmployee(employee), HttpStatus.CREATED); } }
Employee实体类
package net.javaguides.springboot.model; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; import jakarta.persistence.Table; import lombok.Data; @Data @Entity @Table(name="employee") public class Employee { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; @Column(name="first_name",nullable=false) private String firstName; @Column(name="last_name") private String lastName; @Column(name="email") private String email; }
EmployeeRepository接口
package net.javaguides.springboot.repository; import org.springframework.data.jpa.repository.JpaRepository; import net.javaguides.springboot.model.Employee; public interface EmployeeRepository extends JpaRepository<Employee, Long >{ }
EmployeeService接口
package net.javaguides.springboot.service; import net.javaguides.springboot.model.Employee; public interface EmployeeService { Employee saveEmployee(Employee employee); }
EmployeeServiceImpl实现类
package net.javaguides.springboot.service.impl; import org.springframework.stereotype.Service; import net.javaguides.springboot.model.Employee; import net.javaguides.springboot.repository.EmployeeRepository; import net.javaguides.springboot.service.EmployeeService; @Service public class EmployeeServiceImpl implements EmployeeService{ private EmployeeRepository employeeRepository; // 强制参数场景下使用构造方法注入 public EmployeeServiceImpl(EmployeeRepository employeeRepository) { super(); this.employeeRepository = employeeRepository; } @Override public Employee saveEmployee(Employee employee) { return employeeRepository.save(employee); } }
项目结构

数据库表结构(employee表)

内容的提问来源于stack exchange,提问作者Indresh Kumar
相关产品推荐
相关产品推荐

