@Override
    //Metodo que permite la modificacion de un producto existente en la BBDD
    public boolean modificarProducto(TProducto producto) 
    {
        boolean correcto=false;
        TransactionManager.obtenerInstanacia().nuevaTransaccion();
        try
        {
            //Iniciamos la transsacion y bloqueamos la tabla a modificar
            TransactionManager.obtenerInstanacia().getTransaccion().start();
            //buscamos el producto en la BBDD
            //TProducto tProducto = FactoriaDAO.obtenerInstancia().getDAOProducto().mostrarProducto(producto.getId());
            
            //Si el producto existe y no es igual al pasado lo modificamos
            if(producto!=null)
            {
                if(FactoriaDAO.obtenerInstancia().getDAOProducto().modificarProducto(producto))
                {
                    try
                    {
                        TransactionManager.obtenerInstanacia().getTransaccion().commit();
                        correcto=true;
                    }
                    // Si falla el commit.
                    catch(Exception e)
                    {
                       TransactionManager.obtenerInstanacia().getTransaccion().rollback();
                       correcto=false;
                    }
                }
            }
            else
            {
                // Echamos para atras la transaccion
                TransactionManager.obtenerInstanacia().getTransaccion().rollback();
                correcto=false;
            }
            //Eliminamos la transaccion
            TransactionManager.obtenerInstanacia().eliminaTransaccion();
        }
        catch(Exception e)
        {
            try {
                TransactionManager.obtenerInstanacia().getTransaccion().rollback();
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            TransactionManager.obtenerInstanacia().eliminaTransaccion();
            correcto=false;
        } 
        return correcto;
    }