NullPointer Exception Repository Spring Boot Jpa

David Jimenez Clase :

I am making a basic application to send an insert to a database, as a test I have been executing a simple findAll () to test the repository, but it always gives me NullPointer I am aware that it is something very basic and also that I am missing something. Thank you.

This is the main

    @SpringBootApplication
public class ExampleApplication {

    @Autowired
    private static DataRepository dataRepository;

    public static void main(String[] args) {
        SpringApplication.run(ExampleApplication.class, args);
        System.out.println(dataRepository.findAll());

    }

}

Model

 @Entity
public class Data {

    @Id
    private Long id;
    private String content;


    public Data(Long id, String content) {
        super();
        this.id = id;
        this.content = content;
    }
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    @Override
    public String toString() {
        return "Data [id=" + id + ", content=" + content + "]";
    }
}

Repository

    @Repository
public interface DataRepository extends JpaRepository<Data, Long> {

}

Controller

 @RestController
public class DataController {

    @Autowired
    private DataRepository dataRepository;

    @GetMapping("/show")
    public List<Data> findCities(Data data) {


        return dataRepository.findAll();
    }
}

Error

2020-04-07 10:27:14.323  INFO 19892 --- [           main] com.example.demo.ExampleApplication      : Starting ExampleApplication on DESKTOP-ARNRCSA with PID 19892 (C:\Users\David\Documents\workspace-spring-tool-suite-4-4.5.1.RELEASE\example\target\classes started by David in C:\Users\David\Documents\workspace-spring-tool-suite-4-4.5.1.RELEASE\example)
2020-04-07 10:27:14.326  INFO 19892 --- [           main] com.example.demo.ExampleApplication      : No active profile set, falling back to default profiles: default
2020-04-07 10:27:14.739  INFO 19892 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2020-04-07 10:27:14.794  INFO 19892 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 48ms. Found 1 JPA repository interfaces.
2020-04-07 10:27:15.147  INFO 19892 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2020-04-07 10:27:15.261  INFO 19892 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
2020-04-07 10:27:15.300  INFO 19892 --- [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [name: default]
2020-04-07 10:27:15.363  INFO 19892 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate ORM core version 5.4.12.Final
2020-04-07 10:27:15.490  INFO 19892 --- [           main] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {5.1.0.Final}
2020-04-07 10:27:15.588  INFO 19892 --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.MySQL55Dialect
2020-04-07 10:27:15.832  INFO 19892 --- [           main] org.hibernate.tuple.PojoInstantiator     : HHH000182: No default (no-argument) constructor for class: com.example.demo.Data (class must be instantiated by Interceptor)
2020-04-07 10:27:16.057  INFO 19892 --- [           main] o.h.e.t.j.p.i.JtaPlatformInitiator       : HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
2020-04-07 10:27:16.063  INFO 19892 --- [           main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2020-04-07 10:27:16.066  INFO 19892 --- [           main] f.a.AutowiredAnnotationBeanPostProcessor : Autowired annotation is not supported on static fields: private static com.example.demo.DataRepository com.example.demo.ExampleApplication.dataRepository
2020-04-07 10:27:16.417  INFO 19892 --- [           main] com.example.demo.ExampleApplication      : Started ExampleApplication in 2.399 seconds (JVM running for 3.041)
Exception in thread "main" java.lang.NullPointerException
    at com.example.demo.ExampleApplication.main(ExampleApplication.java:17)
2020-04-07 10:27:16.422  INFO 19892 --- [extShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
2020-04-07 10:27:16.424  INFO 19892 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown initiated...
2020-04-07 10:27:16.428  INFO 19892 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource  
Khaled Ahmed :

try this

@SpringBootApplication
public class ExampleApplication {
    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(Application.class, args);
        DataRepository dataRepository = context.getBean(DataRepository.class);
        System.out.println(dataRepository.findAll());
    }
}

you can not use autowire with static field unless you use postConstruct

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=477809&siteId=1