diff --git a/UyTube_aplicacion/src/JPAControllerClasses/BusquedaEnBDD.java b/UyTube_aplicacion/src/JPAControllerClasses/BusquedaEnBDD.java
index fe0735cb39cd047c661b8e7e32570660d1aab38c..466861a748cf7e3bb4dfe508d39c248a74bd42a0 100644
--- a/UyTube_aplicacion/src/JPAControllerClasses/BusquedaEnBDD.java
+++ b/UyTube_aplicacion/src/JPAControllerClasses/BusquedaEnBDD.java
@@ -23,11 +23,16 @@ public class BusquedaEnBDD implements Serializable {
     public BusquedaEnBDD(EntityManagerFactory emf) {
         this.emf = emf;
     }
-
     public EntityManager getEntityManager() {
         return emf.createEntityManager();
     }
-
+    
+    /**
+     * Devuelve un listado de Video y ListaDeReproduccion que pertenezcan ala
+     * categoria indicada, ordenado por fecha de actividasd reciente
+     * @param cat Categoria a buscar
+     * @return Lista ordenada Video y ListaDeReproduccion
+     */
     public List<Object> buscarPorCategoria(String cat) {
         EntityManager em = getEntityManager();
         List<Object> ret = new ArrayList();
@@ -42,7 +47,13 @@ public class BusquedaEnBDD implements Serializable {
             q.setParameter(1, cat);
             ret.addAll(q.getResultList());
             
-            return ret;
+            return ParDeObjetos.extraerElementos(
+                    ordenar(
+                            fecharElementos(
+                                    (ArrayList<Object>) ret
+                            )
+                    )
+            );
         } finally {
             em.close();
         }
@@ -97,4 +108,47 @@ public class BusquedaEnBDD implements Serializable {
         return ret;
     }
     
+    /**
+     * Ordena la lista de pares recibida
+     * @param lista Lista a ordenar
+     * @return Lista ordenada
+     */
+    public ArrayList<ParDeObjetos> ordenar(ArrayList<ParDeObjetos> lista){
+        if (lista == null || lista.isEmpty()){
+            return new ArrayList();
+        }
+        
+        ParDeObjetos par = lista.remove(0);
+        ArrayList<ParDeObjetos> listaOrdenada = ordenar(lista);
+        
+        int i = 0;
+        for (; i < listaOrdenada.size(); i++){
+            ParDeObjetos p = listaOrdenada.get(i);
+            if (comparar(p, par) < 0){
+                break;
+            }
+        }
+        listaOrdenada.add(i, par);
+        return listaOrdenada;
+    }
+    
+    /**
+     * Compara dos pares de objetos
+     * @param a Primer par a comparar
+     * @param b Segundo par a comparar
+     * @return 0 si (a == b), -1 si (a < b), 1 si (a > b)
+     */
+    private int comparar(ParDeObjetos a, ParDeObjetos b){
+        if (a.getOrderField().getClass() == String.class){
+            String str1 = (String) a.getOrderField();
+            String str2 = (String) b.getOrderField();
+            return str1.compareToIgnoreCase(str2);
+        }else if (a.getOrderField().getClass() == java.sql.Date.class){
+            java.sql.Date date1 = (java.sql.Date) a.getOrderField();
+            java.sql.Date date2 = (java.sql.Date) b.getOrderField();
+            return date1.compareTo(date2);
+        }
+        return 0;
+    }
+    
 }
diff --git a/UyTube_aplicacion/src/JPAControllerClasses/ParDeObjetos.java b/UyTube_aplicacion/src/JPAControllerClasses/ParDeObjetos.java
index 96a840c726c698a038e5d34aad9cafb1ed22ff1e..8c38f83397175f66b759940cfe327f8138c1ebbf 100644
--- a/UyTube_aplicacion/src/JPAControllerClasses/ParDeObjetos.java
+++ b/UyTube_aplicacion/src/JPAControllerClasses/ParDeObjetos.java
@@ -1,5 +1,7 @@
 package JPAControllerClasses;
 
+import java.util.ArrayList;
+
 public class ParDeObjetos {
     private Object element;
     private Object orderField;
@@ -26,5 +28,13 @@ public class ParDeObjetos {
     }
     
     
+    public static ArrayList<Object> extraerElementos(ArrayList<ParDeObjetos> lista){
+        ArrayList<Object> ret = new ArrayList();
+        for (ParDeObjetos par : lista){
+            ret.add(par.getElement());
+        }
+        return ret;
+    }
+    
     
 }
diff --git a/UyTube_aplicacion/src/Logica/DatosDePrueba.java b/UyTube_aplicacion/src/Logica/DatosDePrueba.java
index a6133075c025b96873cbcd94b3c2103f162a708f..5dc3fa3d46876faa1d7094b69ee9921528ee0bf9 100644
--- a/UyTube_aplicacion/src/Logica/DatosDePrueba.java
+++ b/UyTube_aplicacion/src/Logica/DatosDePrueba.java
@@ -1,14 +1,11 @@
 package Logica;
 
 import JPAControllerClasses.BusquedaEnBDD;
-import JPAControllerClasses.ParDeObjetos;
-import Logica.Clases.Categoria;
 import Logica.Clases.ListaDeReproduccion;
 import Logica.Clases.Video;
 import Logica.Interfaces.IAdmin;
 import Logica.Interfaces.IUsuario;
 import java.util.ArrayList;
-import java.util.List;
 import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
 import javax.persistence.Persistence;
@@ -47,14 +44,13 @@ public class DatosDePrueba {
             }
             */
             
-            for (ParDeObjetos pdo : new BusquedaEnBDD().fecharElementos((ArrayList<Object>) new BusquedaEnBDD().buscarPorCategoria("MUSICA"))){
-                System.out.print(pdo.getOrderField());
-                System.out.print(" >> ");
-                Object o = pdo.getElement();
+            
+            
+            
+            
+            for (Object o : new BusquedaEnBDD().buscarPorCategoria("MUSICA")){
                 if (o.getClass() == Video.class){
                     Video i = (Video) o;
-                System.out.print(i.getFechaPublicacion());
-                System.out.print(" >> ");
                     System.out.println(i.getNombre());
                 }else if (o.getClass() == ListaDeReproduccion.class){
                     ListaDeReproduccion i = (ListaDeReproduccion) o;
@@ -62,6 +58,8 @@ public class DatosDePrueba {
                 }
             }
             
+            
+            
         } catch (Exception e) {
             System.out.println("//////////////////////////");
             System.out.println(e.getMessage());