Невозможно зафиксировать данные с помощью CopyManager с использованием Spring boot C (автоматическая фиксация включена) - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь использовать команду копирования для копирования данных с использованием STDIN в postgresql с использованием весенней загрузки и JPA. Но команда copyIn выполняется и возвращает ожидаемое количество записей, но не может увидеть данные в базе данных.

public void copyData(){
    PGConnection pgConnection =null;
    CopyManager copyManager = null;
    FileWriter fileWriter = null;
    CSVWriter csvWriter = null;
    long noOfRecords = 0L;
    try {
      pgConnection = dataSource.getConnection().unwrap(PGConnection.class);
      copyManager = pgConnection.getCopyAPI();
      fileWriter =new FileWriter(new File("bulk_data.csv"));
      csvWriter = new CSVWriter(fileWriter);
      List<String[]> strList= IntStream.range(0, 10)
        .mapToObj(this::getChargeDtl)
        .collect(Collectors.toList());
      csvWriter.writeAll(strList);
      csvWriter.flush();
      csvWriter.close();
      fileWriter.close();
      BufferedReader bufferedReader =new BufferedReader(new FileReader("bulk_data.csv"));
      noOfRecords = copyManager.copyIn(
        "COPY test(col1,col2,col3,col4,col5) FROM STDIN  DELIMITER ',' CSV header",
        bufferedReader);
      bufferedReader.close();
      ((BaseConnection)pgConnection).close();
    }catch(SQLException seq){
      seq.printStackTrace();
    }catch (IOException ioe){
      ioe.printStackTrace();
    }catch (Exception e){
      e.printStackTrace();
    }finally {
      System.out.println(noOfRecords);
    }
  }

Я не получаю никаких исключений после завершения выполнения.

...