Создает ли Spring Paraty таблицы с префиксом таблицы?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Создает ли Spring Paraty таблицы с префиксом таблицы?

Сообщение Anonymous »

Я учусь работать с Spring Parath для обработки данных. Или я что -то упускаю?@Configuration
@EnableScheduling
@FieldDefaults(level = PRIVATE, makeFinal = true)
@RequiredArgsConstructor
public class BatchConfiguration {

BatchProperties properties;
OrderService orderService;

@Bean
public Job updateOrderStatusJob(JobRepository jobRepository, PlatformTransactionManager platformTransactionManager) {
Step updateOrderStatusStep = new StepBuilder("updateOrderStatusStep", jobRepository)
.tasklet(orderStatusUpdateTasklet(), platformTransactionManager)
.build();

return new JobBuilder(properties.getJob().getName(), jobRepository)
.start(updateOrderStatusStep)
.listener(orderStatusUpdateJobListener())
.build();
}

@Bean
public Tasklet orderStatusUpdateTasklet() {
return new OrderStatusUpdateTasklet(orderService);
}

@Bean
public JobExecutionListener orderStatusUpdateJobListener() {
return new OrderStatusUpdateJobListener();
}

@Bean
public OrderStatusUpdateJobScheduler orderStatusUpdateJobScheduler(JobLauncher jobLauncher, Job job) {
return new OrderStatusUpdateJobScheduler(jobLauncher, job);
}

}
< /code>
OrderStAtusUpdateTasklet < /p>
@FieldDefaults(level = PRIVATE, makeFinal = true)
@RequiredArgsConstructor
public class OrderStatusUpdateTasklet implements Tasklet {

OrderService orderService;

@Override
public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
LocalDateTime tenMinutesAgo = LocalDateTime.now().minusMinutes(10);
List orders = orderService.getAllOrders();

List updatedOrders = new ArrayList();
for (Order order : orders) {
if (order.getCreatedAt().isBefore(tenMinutesAgo) && order.getIsActive()) {
order.setIsActive(false);
updatedOrders.add(order);
}
}

orderService.saveOrders(updatedOrders);

return FINISHED;
}

}
< /code>
orderStAtusUpdatejobscheduler < /p>
@FieldDefaults(level = PRIVATE, makeFinal = true)
@Slf4j
@RequiredArgsConstructor
public class OrderStatusUpdateJobScheduler {

private static final int TEN_SECONDS = 10000;

JobLauncher jobLauncher;
Job updateOrderStatusJob;

@Scheduled(fixedDelay = TEN_SECONDS)
public void launchStatusUpdateJob() {
try {
jobLauncher.run(updateOrderStatusJob, new JobParameters());
} catch (Exception e) {
log.error("Error launching order status update job", e);
}
}
}
< /code>
application.yml
server:
port: ${BT_PORT:8080}

spring:
name: spring-boot-batch-test
config:
import:
- classpath:application-db.yml
- classpath:application-batch.yml

< /code>
application batch.yml
spring:
batch:
job:
name: update-order-status
jdbc:
initialize-schema: always
table-prefix: MY_CUSTOM_BATCH_
< /code>
application-db.yml
spring:
datasource:
url: ${DB_URL:jdbc:postgresql://localhost:5432/spring_batch_test}
username: ${DB_USERNAME:spring_batch_test}
password: ${DB_PASSWORD}
driver-class-name: ${DB_DRIVER:org.postgresql.Driver}
hikari:
pool-name: spring-batch-hikari-db-pool
connection-timeout: 30000
maximum-pool-size: 10
jpa:
hibernate:
ddl-auto: ${DB_HIBERNATE_DDL_AUTO:update}
dialect: ${DB_HIBERNATE_DIALECT:org.hibernate.dialect.PostgreSQLDialect}
< /code>
my pom file: < /p>


4.0.0

org.springframework.boot
spring-boot-starter-parent
3.3.5


spring-boot-batch-test


21
21
UTF-8




org.springframework.boot
spring-boot-starter-web
3.3.5



org.springframework.boot
spring-boot-starter-data-jpa
3.3.5



org.springframework.boot
spring-boot-starter-batch
3.3.5



org.projectlombok
lombok
1.18.36



org.postgresql
postgresql
42.7.4
runtime



< /code>
Я пытаюсь создать партийное задание, используя таблицы, префиксированные "my_custom_batch_". Но мое приложение не началось.2025-02-13T12:07:59.928+06:00 ERROR 32268 --- [ scheduling-1] .n.m.b.e.j.OrderStatusUpdateJobScheduler : Error launching order status update job

org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [SELECT JOB_INSTANCE_ID, JOB_NAME
FROM MY_CUSTOM_BATCH_JOB_INSTANCE
WHERE JOB_NAME = ?
and JOB_KEY = ?]
at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:112) ~[spring-jdbc-6.1.14.jar:6.1.14]
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:107) ~[spring-jdbc-6.1.14.jar:6.1.14]
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:116) ~[spring-jdbc-6.1.14.jar:6.1.14]
...
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]
Caused by: org.postgresql.util.PSQLException: ERROR: relation "my_custom_batch_job_instance" does not exist
- Position: 39
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2733) ~[postgresql-42.7.4.jar:42.7.4]

com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java) ~[HikariCP-5.1.0.jar:na]
at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:732) ~[spring-jdbc-6.1.14.jar:6.1.14]
...
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:658) ~[spring-jdbc-6.1.14.jar:6.1.14]
... 33 common frames omitted
2025-02-13T12:07:59.956+06:00 ERROR 32268 --- [ main] o.s.boot.SpringApplication : Application run failed


Подробнее здесь: https://stackoverflow.com/questions/794 ... ble-prefix
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»