bufix media
[mir.git] / source / mircoders / storage / DatabaseContentToTopics.java
index 3d19a17..eca6c29 100755 (executable)
@@ -268,42 +268,28 @@ public class DatabaseContentToTopics extends Database implements StorageObject{
       freeConnection(con,stmt);
     }
   }
-
-
+  
+/**
+ * Returns list of Content for a specific topic
+ * @param topic
+ * @return EntityList
+ * @throws StorageObjectFailure
+ */
   public EntityList getContent(EntityTopics topic)
     throws StorageObjectFailure {
     EntityList returnList=null;
     if (topic != null) {
-      
-      // TODO rewrite with getByWhereClauseWithExtraTables 
-            
       String id = topic.getId();
-      String select = "select content_id from " + theTable + " where topic_id=" + id;
-
-      // execute select statement
-      Connection con=null;Statement stmt=null;
       try {
-        con = getPooledCon();
-        // should be a preparedStatement because is faster
-        stmt = con.createStatement();
-        ResultSet rs = executeSql(stmt,select);
-        if (rs!=null) {
-          String topicSelect= "id IN (";
-          boolean first=true;
-          while (rs.next()) {
-            if (first==false) topicSelect+=",";
-            topicSelect += rs.getString(1);
-            first=false;
-          }
-          topicSelect+=")";
-          if (first==false)
-            returnList = DatabaseContent.getInstance().selectByWhereClause(topicSelect,-1);
-        }
+        Vector extraTables = new Vector();
+        extraTables.add(theTable+" cxt");
+        returnList = DatabaseContent.getInstance()
+                      .selectByWhereClauseWithExtraTables("c",extraTables, 
+                          "c.id=cxt.content_id and cxt.topic_id="+id );    
       }
       catch (Exception e) {
         logger.error("-- get content failed");
       }
-      finally { freeConnection(con,stmt);}
     }
     return returnList;
   }