#spring #spring-boot #spring-batch #itemprocessor
#весна #пружинный ботинок #пружинная партия #itemпроцессор
Вопрос:
Я создал a StoredProcedureItemReader
, и я хотел назвать это StoredProcedureItemReader
@Bean
своим ItemProcessor
. Вот мой компонент чтения элементов хранимой процедуры
@Bean public StoredProcedureItemReaderlt;Usergt; jdbcClusterObjectReader(JdbcTemplate jdbcTemplate) throws Exception { StoredProcedureItemReaderlt;Usergt; storedProcedureItemReader = new StoredProcedureItemReaderlt;gt;(); storedProcedureItemReader.setFunction(true); storedProcedureItemReader.setDataSource(Objects.requireNonNull(jdbcTemplate.getDataSource())); storedProcedureItemReader.setProcedureName("function2"); storedProcedureItemReader.setParameters( new SqlParameter[] { new SqlParameter("_id", Types.VARCHAR) }); storedProcedureItemReader.setCurrentItemCount(0); storedProcedureItemReader.setConnectionAutoCommit(false); storedProcedureItemReader.setRowMapper(new UserRowMapper()); storedProcedureItemReader.afterPropertiesSet(); System.out.println(storedProcedureItemReader.getSql()); storedProcedureItemReader.setVerifyCursorPosition(false); return storedProcedureItemReader; }
и вот моя реализация ItemProcessor
@StepScope public class UserDataProcessor implements ItemProcessorlt;User, Usergt; { @Autowired private ApplicationContext appContext; @Override public User process(User item) throws Exception { StoredProcedureItemReaderlt;Usergt; clusterDetailStoredProcedureItemReader = (StoredProcedureItemReaderlt;Usergt;) appContext.getBean("jdbcClusterObjectReader"); clusterDetailStoredProcedureItemReader.open(new ExecutionContext()); clusterDetailStoredProcedureItemReader.setParameters(new SqlParameter[]{}); ClusterDetail clusterDetail = clusterDetailStoredProcedureItemReader.read(); return clusterDetail; }
}
и вот моя функция postgres
CREATE OR REPLACE FUNCTION function2(_clusterid varchar) AS $ .... END;$ LANGUAGE plpgsql;
Я не знаю, как передать текущий идентификатор пользователя в эту процедуру, которую я создал, Пожалуйста, помогите, спасибо