I tried this to see if it would work and unfortunately it doesn't work.

Here's the code.

        ObjectContext context = BaseContext.getThreadObjectContext();
SQLTemplate select = new SQLTemplate(SurveyResultDetails.class, sqlQuery);
        // select.setTemplate(DB2Adapter.class.getName(), sqlQuery);
        select.setFetchingDataRows(true);
        // select.setColumnNamesCapitalization(CapsStrategy.UPPER);

        List list = context.performQuery(select);
        DataContext dc = new DataContext();
        for (Iterator it = list.iterator(); it.hasNext();) {
            // SurveyResultDetails item = (SurveyResultDetails)it.next();
            DataRow x = (DataRow)it.next();
System.out.println("x-" + x);
SurveyResultDetails item = dc.objectFromDataRow(SurveyResultDetails.class, x, false);

And here's the result:


2011-05-13 11:06:55,909 [http-8084-2] INFO org.apache.cayenne.access.QueryLogger - Select * from SurveyResultDetails where survey_id = 1 and question in (Select question from SurveyQuestions, SurveyQuestionTypes where SurveyQuestionTypes.id = 5 and SurveyQuestions.question_type_id = 5) order by result, survey_dts 2011-05-13 11:06:55,914 [http-8084-2] INFO org.apache.cayenne.access.QueryLogger - === returned 3 rows. - took 5 ms. 2011-05-13 11:06:55,914 [http-8084-2] INFO org.apache.cayenne.access.QueryLogger - +++ transaction committed. x-org.apache.cayenne.DataRow@229a94b3[values={id=50, result=0, caller_id=5001110410145147, survey_dts=Sun Apr 10 14:53:17 EDT 2011, rec_msg=101453001, question=12, lang=EN, survey_id=1, note=}, version=-9223372036854775804, replaces=-9223372036854775808]
May 13, 2011 11:06:55 AM com.vaadin.Application terminalError
SEVERE: Terminal error:
java.lang.NullPointerException
at org.apache.cayenne.access.DataContext.objectFromDataRow(DataContext.java:638) at com.callistacti.survey.database.SurveyResultDetails.generateReport(SurveyResultDetails.java:58) at com.callistacti.survey.database.SurveyResultDetails.loadTable(SurveyResultDetails.java:149) at com.callistacti.survey.Panels.PanelFeedback.<init>(PanelFeedback.java:167) at com.callistacti.survey.Windows.WindowMain$3.menuSelected(WindowMain.java:295)
        at com.vaadin.ui.MenuBar.changeVariables(MenuBar.java:178)
at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariableBurst(AbstractCommunicationManager.java:1297) at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariables(AbstractCommunicationManager.java:1217) at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.doHandleUidlRequest(AbstractCommunicationManager.java:733) at com.vaadin.terminal.gwt.server.CommunicationManager.handleUidlRequest(CommunicationManager.java:296) at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:483)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.cayenne.conf.WebApplicationContextFilter.doFilter(WebApplicationContextFilter.java:93) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:619)


On 05/13/2011 09:27 AM, Michael Gentry wrote:
DataContext can convert a DataRow to a DataObject for you:

<T extends DataObject>  T objectFromDataRow(Class<T>  objectClass,
DataRow dataRow, boolean refresh)

mrg


On Fri, May 13, 2011 at 9:21 AM, Andrew Willerding
<[email protected]>  wrote:
That worked to retrieve a DataRow object.  The data is there now.  Is there
some way to convert this now into a usable cayenne data object without
pulling the columns out of the HashMap one column at a time?  Or is there an
underlying bug that is at the root why this is works for MySQL but not for
DB2 V7?



--
Andrew Willerding
Callista CTI

  ph: 416 444-9702 x9455
  fx: 416 444-9732
cell: 416 712-2323
 www: http://www.callistacti.com

Reply via email to