【问题标题】:Null Pointer Exception on insert record through postman in Spring Boot using Data JPA使用Data JPA在Spring Boot中通过邮递员插入记录时出现空指针异常
【发布时间】:2020-05-04 07:29:03
【问题描述】:

我想要做的是使用邮递员使用 Spring Data JPA 发布一条记录,我得到空指针异常。 我不知道出了什么问题,请求中没有错误,代码中没有错误,但它显示内部服务器错误。请任何人帮助我

控制器-->

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

    private  EmployeeRepository erepo;
    @GetMapping("/getEmployee")
    public ResponseEntity<Object> get(){
        List<Employee> findAll = erepo.findAll();
        return new ResponseEntity<Object>(findAll,HttpStatus.OK);

    }

    @PostMapping("/postEmployee")
    public String post(@RequestBody Employee emp){
        System.out.println(emp.getName());
        System.out.println(emp.getId());
        erepo.save(emp);

        return "string";
    }   
}

-->实体

@Entity
public class Employee {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
    private int id;
    private String name;
    public Employee() {
        super();
        // TODO Auto-generated constructor stub
    }
    public Employee(String name) {
        super();
        this.name = name;
    }
    public Employee(int id, String name) {
        super();
        this.id = id;
        this.name = name;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

}

-->JpaRepository

public interface EmployeeRepository  extends JpaRepository<Employee,Integer>{


}

-->application.properties

server.port=8082


spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/ajax1
spring.datasource.username=root
spring.datasource.password=rajat

spring.jpa.hibernate.ddl-auto = update

spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

-->邮递员请求

Url-->http://localhost:8082/api/postEmployee
body-->{
    "id":1,

    "name":"kanha"
}

错误堆栈帧-->

java.lang.NullPointerException: null
    at com.example.demo.controller.Controller1.post(Controller1.java:31) ~[classes/:na]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_191]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_191]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_191]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_191]
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:189) ~[spring-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) ~[spring-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102) ~[spring-webmvc-5.1.5.RELEASE.jar:5.1.5.RELEASE]
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.1.5.RELEASE.jar:5.1.5.RELEASE]

【问题讨论】:

    标签: hibernate spring-boot spring-mvc jpa spring-data-jpa


    【解决方案1】:

    你必须使用依赖注入。这里你的private EmployeeRepository ereponull 导致 java.lang.NullPointerException: null

    改变

    private EmployeeRepository erepo;
    

    @Autowired private EmployeeRepository erepo;
    

    注意:您不需要传递"id":1,因为您使用的是@GeneratedValue(strategy=GenerationType.AUTO)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-31
      • 2019-02-03
      • 2021-08-31
      • 1970-01-01
      • 2015-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多