#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
файле неверны, если у вас нет специальной конфигурации. Если они есть, мы можем их отладить, если вы добавите их в свой вопрос.