CompositeItemWriter с помощью вставки делегатов (JdbcBatchItemWriter) в 2 таблицы с отношением FK

Я использую весеннюю партию с аннотацией java.

Этот пакет требуется прочитать файл, обработать и вставить в таблицу.
В основном я сделалitemReader, itemProcessor а также userItemWriter с commit-interval равно 1.

У меня вопрос:

  1. Как вставить ПК из User стол к UserDetail Таблица?
   @Bean
   public UserItemWriter userItemWriter() {
       UserItemWriter itemWriter = new UserItemWriter();
       List<ItemWriter<? super UserBO>> delegates = new ArrayList<>();
       delegates.add( userDelegates() );
       delegates.add( userDetailDelegates() );
       itemWriter.setDelegates( delegates );
       return itemWriter;
   }

   @Bean
   public JdbcBatchItemWriter<UserBO> userDelegates() {
       JdbcBatchItemWriter<UserBO> jdbcWriter = new JdbcBatchItemWriter<>();
       jdbcWriter.setDataSource( databaseConfig.dataSource() );
       jdbcWriter.setItemPreparedStatementSetter( new UserPreparedStmtSetter() );
       jdbcWriter.setSql( UserItemWriter.I_USER_SQL );
       return jdbcWriter;
   }

   @Bean
   public JdbcBatchItemWriter<UserBO> userDetailDelegates() {
       JdbcBatchItemWriter<UserBO> jdbcWriter = new JdbcBatchItemWriter<>();
       jdbcWriter.setDataSource( databaseConfig.dataSource() );
       jdbcWriter.setItemPreparedStatementSetter( new UserDetailPreparedStmtSetter() );
       jdbcWriter.setSql( UserItemWriter.I_USERDETAIL_SQL );
       return jdbcWriter;
   }

SQL:

    public static final String I_USER_SQL = "INSERT INTO USER(USERID, NAME, STATUS)VALUES(USER_IDSEQ.NEXTVAL,?,?)";

    public static final String I_USER_DETAIL_SQL = "INSERT INTO USERDETAIL(USERDETAILID,ADDRESS1,USERID)VALUES(USERDETAIL_IDSEQ.NEXTVAL,?,?)";

0 ответов

Другие вопросы по тегам