public static List batchGetRow()

in java/core/src/main/java/com/aliyun/openservices/tablestore/agent/util/TablestoreHelper.java [596:620]


    public static <T> List<T> batchGetRow(SyncClient client, String tableName, List<PrimaryKey> primaryKeys, Function<Row, T> translateFunction) {
        MultiRowQueryCriteria multiRowQueryCriteria = new MultiRowQueryCriteria(tableName);
        for (PrimaryKey rowChange : primaryKeys) {
            multiRowQueryCriteria.addRow(rowChange);
        }
        multiRowQueryCriteria.setMaxVersions(1);

        List<String> errorDetails = new ArrayList<>();
        try {
            BatchGetRowRequest batchGetRowRequest = new BatchGetRowRequest();
            batchGetRowRequest.addMultiRowQueryCriteria(multiRowQueryCriteria);

            BatchGetRowResponse batchGetRowResponse = client.batchGetRow(batchGetRowRequest);
            if (!batchGetRowResponse.isAllSucceed()) {
                for (BatchGetRowResponse.RowResult rowResult : batchGetRowResponse.getFailedRows()) {
                    PrimaryKey primaryKey = batchGetRowRequest.getPrimaryKey(rowResult.getTableName(), rowResult.getIndex());
                    errorDetails.add(String.format("failed pk:[%s], failed msg:[%s]", primaryKey.jsonize(), rowResult.getError().getMessage()));
                }
                throw Exceptions.runtime(String.format("batch get row failed, error details:%s", errorDetails));
            }
            return batchGetRowResponse.getSucceedRows().stream().map(r -> translateFunction.apply(r.getRow())).collect(Collectors.toList());
        } catch (Exception e) {
            throw Exceptions.runtimeThrowable("batch get row failed", e);
        }
    }