I inserted the select.setColumnNamesCapitalization(CapsStrategy.UPPER); into the code and now both MySQL and DB2 return the null data items.


On 05/13/2011 10:26 AM, Andrew Willerding wrote:
I am a very casual but committed user of Cayenne so my knowledge of Cayenne is not very deep ;-) I was drawn to its use because I disliked the XML configurations necessary in other ORM frameworks. I hope I'm helping and not hindering it's continued development.

Here's the trace with MySQL. The columns are definitely lower case in this situation. I will try the setColumnNameCapitalization method to see if it makes the improvement to DB2 without jeopardizing MySQL.



2011-05-13 08:40:53,311 [http-8084-1] 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 08:40:53,317 [http-8084-1] INFO org.apache.cayenne.access.QueryLogger - === returned 3 rows. - took 6 ms. 2011-05-13 08:40:53,318 [http-8084-1] INFO org.apache.cayenne.access.QueryLogger - +++ transaction committed. SurveyResultDetails item=org.apache.cayenne.DataRow@3b1674f0[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] SurveyResultDetails item=org.apache.cayenne.DataRow@3f5756de[values={id=60, result=0, caller_id=5001110410151543, survey_dts=Sun Apr 10 15:17:11 EDT 2011, rec_msg=101517001, question=12, lang=EN, survey_id=1, note=}, version=-9223372036854775803, replaces=-9223372036854775808] SurveyResultDetails item=org.apache.cayenne.DataRow@7f08294e[values={id=88, result=0, caller_id=5001110410161501, survey_dts=Sun Apr 10 16:16:46 EDT 2011, rec_msg=101616001, question=12, lang=EN, survey_id=1, note=}, version=-9223372036854775802, replaces=-9223372036854775808]




On 05/13/2011 10:14 AM, Andrus Adamchik wrote:
Sorry I may have not made it clear, but the point of this exercise was not to produce data rows, but to uncover and debug the differences between MySQL and DB2. So could you print out the data rows (like you did below) for BOTH databases and check the differences.

More specifically I am trying to determine whether you need to use 'setColumnNamesCapitalization' per

http://cayenne.apache.org/doc30/advanced-sqltemplate.html

Andrus


On May 13, 2011, at 4:21 PM, Andrew Willerding 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?

2011-05-13 08:43:45,595 [http-8080-1] INFO org.apache.cayenne.access.QueryLogge r - Select * from SurveyResultDetails where survey_id = 1 and question in (Selec t question from SurveyQuestions, SurveyQuestionTypes where SurveyQuestionTypes.i d = 5 and SurveyQuestions.question_type_id = 5) order by result, survey_dts 2011-05-13 08:43:45,796 [http-8080-1] INFO org.apache.cayenne.access.QueryLogge
r - === returned 10 rows. - took 201 ms.
2011-05-13 08:43:45,796 [http-8080-1] INFO org.apache.cayenne.access.QueryLogge
r - +++ transaction committed.
SurveyResultDetails item=org.apache.cayenne.DataRow@1533c8[values={SURVEY_DTS=Su n Apr 10 14:53:17 EDT 2011, REC_MSG=101453001, RESULT=0, QUESTION=12, ID=50, NOT E=null, CALLER_ID=5001110410145147, LANG=EN, SURVEY_ID=1}, version=-922337203685
4775804, replaces=-9223372036854775808]
SurveyResultDetails item=org.apache.cayenne.DataRow@1faa614[values={SURVEY_DTS=S un Apr 10 15:17:11 EDT 2011, REC_MSG=101517001, RESULT=0, QUESTION=12, ID=60, NO TE=null, CALLER_ID=5001110410151543, LANG=EN, SURVEY_ID=1}, version=-92233720368
54775803, replaces=-9223372036854775808]

On 05/13/2011 06:48 AM, Andrus Adamchik wrote:
I can suggest a test:

select.setFetchingDataRows(true)

and then print and compare the results between 2 DB's.

Andrus






--
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