У меня есть пример приложения SprintBoot
package com.example.demo2;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
@SpringBootApplication
@EnableJpaRepositories(basePackages = "com.example.demo2")
public class Demo2Application {
public static void main(String[] args) {
SpringApplication.run(Demo2Application.class, args);
}
}
Мои application.properties, здесь источник данных конфигурации и спящий режим jpa
spring.datasource.url= jdbc:postgresql://localhost:5432/testdb
spring.datasource.username= admin
spring.datasource.password= admin
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation= true
spring.jpa.properties.hibernate.dialect= org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.hibernate.ddl-auto= update
и у меня есть простой метод контроллера
@GetMapping("/get")
public List<Movie> getMethod(){
return myService.myMethod();
}
и обслуживание
@Service
public class MyService {
@PersistenceContext
private EntityManager entityManager;
@Transactional
public List<Movie> myMethod() {
List<Movie> myList = entityManager.createQuery("from Movie").getResultList();
return myList;
}
}
Результат
java.lang.NullPointerException: Cannot invoke "javax.persistence.EntityManager.createQuery(String)" because "this.entityManager" is null
Мне нужно простое приложение Springboot и Hibernate с инициализированным entityManager для запроса к БД.
Что я делаю не так?
Я решил свою проблему, просто заменив весь импорт javax.persistence на jakarta.persistence