Невозможно подключиться и получить данные postgres из задания планировщика cron

#java #spring #postgresql #spring-boot #crontrigger

#java #весна #postgresql #весенняя загрузка #crontrigger

Вопрос:

Я ищу автоматическое подключение к базе данных postgres при запуске задания. Я не могу подключиться к базе данных postgres и получить список книг.

Я попытался вызвать таблицу базы данных postgres с именем book_tbl с двумя столбцами id и name из MemberClassService следующим образом

 @Slf4j
@Service
public class MemberClassService {
    private ClassRepository classRepository;
    private MemberRepository memberRepository;
    @Autowired
    private BookRepository bookRepository;
    Logger log = LoggerFactory.getLogger("SampleLogger");

    public MemberClassService(ClassRepository classRepository, MemberRepository memberRepository,
            BookRepository bookRepository) {
        this.classRepository = classRepository;
        this.memberRepository = memberRepository;
        this.bookRepository = bookRepository;
    } 

@Transactional(propagation = Propagation.REQUIRED, readOnly = true)

public void classStats() {

List<Book> booksList = bookRepository.findAll();

log.info("Books List sieze:::" booksList.size());

Map<String, Integer> bookMap = booksList.stream()

.collect(Collectors.toMap(Book::getName, c -> 0));



}
}
 
 

Я добавил следующие свойства в файл application.properites

 #Postgres db2

spring.book.datasource.jdbcUrl=jdbc:postgresql://localhost:5432/periphery_old

spring.book.datasource.username=postgres

spring.book.datasource.password=postgres

spring.book.datasource.driver-class-name=org.postgresql.Driver
 

Я создал для этого следующие классы.

 package com.gitlab.johnjvester.jpaspec.repository;

 

import org.springframework.data.jpa.repository.JpaRepository;

import org.springframework.data.jpa.repository.JpaSpecificationExecutor;

import org.springframework.stereotype.Repository;

 

import com.gitlab.johnjvester.jpaspec.web.model.Book;

 

@Repository

public interface BookRepository extends JpaRepository<Book, Integer>, JpaSpecificationExecutor {

 

}

 
package com.gitlab.johnjvester.jpaspec.repository;

import com.gitlab.johnjvester.jpaspec.domain.MemberClass;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;

import java.util.List;

public interface ClassRepository extends JpaRepository<MemberClass, Long>, JpaSpecificationExecutor {
    List<MemberClass> findAllByNameContainsIgnoreCase(String searchString);
}
 
 

Комментарии:

1. Какую ошибку вы получаете?

2. Я не могу подключиться к postgres db для получения списка книг в методе classStats.

3. Программа по умолчанию запускает задание cron. В момент запуска задания я пытаюсь извлечь данные из postgres. Здесь я не могу подключиться и получить список книг.

4. Первое, что бросается в глаза, я думаю datasource , что ссылки на определения в вашем application.properties файле неверны, если у вас нет специальной конфигурации. Если они есть, мы можем их отладить, если вы добавите их в свой вопрос.