Я пытаюсь использовать команду копирования для копирования данных с использованием 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);
}
}
Я не получаю никаких исключений после завершения выполнения.