@Override
    public List<Integer> update(Criteria beans, Criteria criteria, GenericUpdateQuery updateGeneric, Connection conn) throws DaoQueryException {
        List paramList1 = new ArrayList<>();
        List paramList2 = new ArrayList<>();
        StringBuilder sb = new StringBuilder(UPDATE_QUERY);
        String queryStr = new QueryMapper() {
            @Override
            public String mapQuery() {
                Appender.append(DAO_USER_PASSWORD, DB_USER_PASSWORD, criteria, paramList1, sb, COMMA);
                Appender.append(DAO_USER_EMAIL, DB_USER_EMAIL, criteria, paramList1, sb, COMMA);
                Appender.append(DAO_ID_ROLE, DB_USER_ID_ROLE, criteria, paramList1, sb, COMMA);
                Appender.append(DAO_USER_PHONE, DB_USER_PHONE, criteria, paramList1, sb, COMMA);
                Appender.append(DAO_USER_LANGUAGE, DB_USER_LANGUAGE, criteria, paramList1, sb, COMMA);
                Appender.append(DAO_USER_DISCOUNT, DB_USER_DISCOUNT, criteria, paramList1, sb, COMMA);
                Appender.append(DAO_USER_BALANCE, DB_USER_BALANCE, criteria, paramList1, sb, COMMA);
                Appender.append(DAO_USER_STATUS, DB_USER_STATUS, criteria, paramList1, sb, COMMA);
                sb.append(WHERE);
                Appender.append(DAO_ID_USER, DB_USER_ID_USER, beans, paramList2, sb, AND);
                Appender.append(DAO_USER_LOGIN, DB_USER_LOGIN, beans, paramList2, sb, AND);
                Appender.append(DAO_USER_PASSWORD, DB_USER_PASSWORD, beans, paramList2, sb, AND);
                Appender.append(DAO_USER_EMAIL, DB_USER_EMAIL, beans, paramList2, sb, AND);
                Appender.append(DAO_ID_ROLE, DB_USER_ID_ROLE, beans, paramList2, sb, AND);
                Appender.append(DAO_USER_PHONE, DB_USER_PHONE, beans, paramList2, sb, AND);
                Appender.append(DAO_USER_LANGUAGE, DB_USER_LANGUAGE, beans, paramList2, sb, AND);
                Appender.append(DAO_USER_DISCOUNT, DB_USER_DISCOUNT, beans, paramList2, sb, AND);
                Appender.append(DAO_USER_BALANCE, DB_USER_BALANCE, beans, paramList2, sb, AND);
                Appender.append(DAO_USER_STATUS, DB_USER_STATUS, beans, paramList2, sb, AND);
                return sb.toString();
            }
        }.mapQuery();
        paramList1.addAll(paramList2);

        try {
            return updateGeneric.sendQuery(queryStr, paramList1.toArray(), conn);
        } catch (DaoException ex) {
             throw new DaoQueryException(ERR_USER_UPDATE, ex);
        }
    }