@Override
    public TIPO_OBJETO set(TIPO_OBJETO oBean) throws Exception {
        Class<TIPO_OBJETO> tipo = (Class<TIPO_OBJETO>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
        Method metodo_getId = tipo.getMethod("getId");
        Method metodo_setId = tipo.getMethod("setId", Integer.class);
        try {
            oMysql.conexion(enumTipoConexion);
            oMysql.initTrans();
            if ((Integer) metodo_getId.invoke(oBean) == 0) {
                metodo_setId.invoke(oBean, oMysql.insertOne(strTabla));
            }
            for (Method method : tipo.getMethods()) {
                if (!method.getName().substring(3).equalsIgnoreCase("id")) {
                    if (method.getName().substring(0, 3).equalsIgnoreCase("get")) {
                        if (!method.getName().equals("getClass")) {
                            final Class<?> strTipoDevueltoMetodoGet = method.getReturnType();
                            String value = (String) method.invoke(oBean).toString();
                            if (strTipoDevueltoMetodoGet.getName().equals("java.util.Date")) {
                                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
                                value = format.format(method.invoke(oBean));
                            }                                 
                            String strCampo=method.getName().substring(3).toLowerCase(Locale.ENGLISH);
                            oMysql.updateOne((Integer) metodo_getId.invoke(oBean), strTabla, strCampo, value);
                        }
                    }
                }
            }
            oMysql.commitTrans();
        } catch (Exception e) {
            oMysql.rollbackTrans();
            throw new Exception("GenericDao.set: Error: " + e.getMessage());
        } finally {
            oMysql.desconexion();
        }
        return oBean;
    }