У меня есть таблица улья emp с разделом даты, и я хочу перезаписывать раздел каждый раз, когда я делаю вставку.
Я использую JDBC batchUpdate и перезапись вставки улья.
Проблема в том, что всякий раз, когда я вставляю более одного элемента, используя формат ниже, каждая итерация вставки перезаписывает предыдущую вставку.
jdbcTemplate.batchUpdate("INSERT OVERWRITE table emp partition(datestamp = ?) values (?,?)",
new BatchPreparedStatementSetter() {
public void setValues(PreparedStatement ps, int i) throws SQLException {
ps.setString(1, date);
ps.setString(2, emp.get(i).getEmp_id());
ps.setString(3, emp.get(i).getName());
}
public int getBatchSize() {
return emp.size();
}
});
Перезапись вставки будет работать, и я могу вставитьболее одной строки, если оператор вставки структурирован, как показано ниже, со всеми значениями в одной строке, например:
INSERT OVERWRITE table emp partition(datestamp = ?) values(?, ?),(?, ?);
Однако я не знаю самого простого способа сделать это, используяJDBC batchUpdate.Любая помощь или предложения приветствуются.Спасибо!