2

私は ArrayList を使用して以下のようなバッチ更新のコードを見てきました:

@Override
public void saveBatch(final List<Employee> employeeList) {
    final int batchSize = 500;

    for (int j = 0; j < employeeList.size(); j += batchSize) {

        final List<Employee> batchList = employeeList.subList(j, j + batchSize > employeeList.size() ? employeeList.size() : j + batchSize);

        getJdbcTemplate().batchUpdate(QUERY_SAVE,
            new BatchPreparedStatementSetter() {
                @Override
                public void setValues(PreparedStatement ps, int i)
                        throws SQLException {
                    Employee employee = batchList.get(i);
                    ps.setString(1, employee.getFirstname());
                    ps.setString(2, employee.getLastname());
                    ps.setString(3, employee.getEmployeeIdOnSourceSystem());
                }

                @Override
                public int getBatchSize() {
                    return batchList.size();
                }
            });

    }
}

しかし、以下のように Hashmap を使用する場合:HashMap<String, VerifyPaymentRO> verifyPaymentInfoMap

VerifyPaymentROジャバビーンです

レコードを更新するためにどのように使用しますか?

4

1 に答える 1

1

マップ値から作成List<?>するだけで、投稿したのと同じコードを使用できます。

List<VerifyPaymentRO> verifyPaymentList = new ArrayList<>(verifyPaymentInfoMap.values());
于 2013-10-04T12:43:26.350 に答える