protected <T> List<T> executeWithKeys(Class<T> type, @Nullable Path<T> path) {
        ResultSet rs = null;
        try {
            rs = executeWithKeys();
            List<T> rv = new ArrayList<T>();
            while (rs.next()) {
                rv.add(configuration.get(rs, path, 1, type));
            }
            return rv;
        } catch (SQLException e) {
            throw configuration.translate(e);
        } finally {
            if (rs != null) {
                close(rs);
            }
            reset();
        }
    }
Execute the clause and return the generated key with the type of the given path.
If no rows were created, or the referenced column is not a generated key, null is returned.
Otherwise, the key of the first row is returned.

@param <T>
@param path path for key
@return generated keys
querydsl-sql/src/main/java/com/querydsl/sql/dml/SQLMergeClause.java