2 Replies Latest reply on Feb 12, 2007 8:27 AM by gjastrab

    Trouble Converting java List to ArrayCollection

    gjastrab
      I'm using RemoteObjects to connect to my backend. In one of my calls
      I'm trying to return a List of VO's I create after hitting my database.

      On the Flex side, my result event is firing properly, but when I try
      to convert the result to an ArrayCollection, instead of getting a
      proper ArrayCollection I get single element that displays the
      following when I output it in an alert: "obj is: '[object TestVO],
      [object TestVO], ... [object TestVO]'".

      If I return a single TestVO object directly instead of a List, I can
      properly cast the result to my ActionScript TestVO object and view the
      data properly. It's just returning the List that's giving me problems.

      Can anyone offer any suggestions please?

      My Flex result code is:

      public function result(evt:Object):void {
      if(evt.type && evt.type == ResultEvent.RESULT) {
      var re:ResultEvent = evt as ResultEvent;
      var col:ArrayCollection = new
      ArrayCollection(ArrayUtil.toArray(re.result));
      if(col) {
      Alert.show("obj is: '" + col.getItemAt(0) + "'");
      }
      else Alert.show("Didn't cast properly!");
      }
      }

      My Java DAO code that returns the list is:

      public List getList() throws DAOException {
      List list = new ArrayList();
      Connection c = null;

      try {
      c = ConnectionHelper.getConnection();
      Statement s = c.createStatement();
      ResultSet rs = s.executeQuery("SELECT * FROM test");
      while(rs.next()) {
      TestVO vo = new TestVO();
      vo.id = rs.getInt("id");
      vo.data = rs.getString("data");
      list.add(vo);
      }
      } catch(Exception e) {
      e.printStackTrace();
      throw new DAOException(e);
      } finally {
      ConnectionHelper.close(c);
      }
      return list;
      }