Spring data кидвет java.lang.NullPointerException
Здраствуйте, мучююсь с ошибкой уже дней 5.При запросе к UserRepository кидaет ошибку java.lang.NullPointerException.
aplication.properties
server.port=4001
# ---- Postgres ----
spring.datasource.driverClassName =org.postgresql.Driver
spring.jpa.database=POSTGRESQL
spring.datasource.url=jdbc:postgresql://localhost:5432/BodaDB
spring.jpa.properties.hibernate.default_schema=jpa
spring.datasource.username=Boda
spring.datasource.password=Boda1006
#JPA logging
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE
spring.jpa.hibernate.ddl-auto = none
# create
# none
# update
# create-drop
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.id.new_generator_mappings=true
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
Мой Entity
package com.example.demo.Models;
import javax.persistence.*;
@Table(name = "users")
@Entity
public class Users {
@Column(name="email")
String email;
@Column(name = "login")
private String login;
@Column(name="password")
private String password;
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Id
@Column(name = "id")
private Long id;
public Users() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Users(String email, String login, String password) {
this.email = email;
this.login = login;
this.password = password;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
Мой Repository
package com.example.demo.Repositories;
import com.example.demo.Models.Users;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<Users,Long> {
}
Мой Класс с использованием spring data
package com.example.demo.Configures;
import com.example.demo.Repositories.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@SpringBootApplication
@Configuration
@ComponentScan("com.example.demo")
public class DemoApplication {
@Autowired
private static UserRepository userRepository;
public static void main(String[] args) {
userRepository.findAll();
}
}
Ответы (1 шт):
Автор решения: Artur Kovalchuk
→ Ссылка
Не работает, так как static несовместим c @Autowired + нет main метода (SpringApplication.run).
Попробуй
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
@SpringBootApplication
@Configuration
@ComponentScan("com.example.demo")
public class DemoApplication implements CommandLineRunner {
@Autowired
private UserRepository userRepository;
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
userRepository.findAll();
}
}
Почитать об @Autowired: https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans-autowired-annotation