Andrus,

can you point me to the code where Cayenne tries to match what is returned
by JDBC and tries to match it to DbEntity fields?
Setting a breakpoint there I may be able to understand what is going wrong.

Thanks,

Giulio Cesare



On Tue, May 28, 2013 at 2:50 PM, Andrus Adamchik <and...@objectstyle.org>wrote:

> I think the culprit is still what's in the ResultSet - Cayenne does not
> recognize the column names returned by JDBC. The reasons can be few…
> Another workaround might be to use #result directive to name each column to
> match a corresponding DbEntity name.
>
> A.
>
> On May 28, 2013, at 3:44 PM, giulio.ces...@gmail.com wrote:
>
> > Hello Andrus,
> >
> > unfortunately your suggestion didn't help. I am now trying to build my
> > project using Cayenne code base from repository Head, to see if I can
> spot
> > what is going wrong.
> >
> > Thanks for the help.
> >
> > Regards,
> >
> > Giulio Cesare
> >
> >
> >
> > On Tue, May 28, 2013 at 9:24 AM, Andrus Adamchik <and...@objectstyle.org
> >wrote:
> >
> >> I think I've seen it before. This could the column naming in the result
> >> set not exactly matching DbEntity. Try this maybe:
> >>
> >> query.setColumnNamesCapitalization(CapsStrategy.LOWER);
> >>
> >> And yes, we need to improve this in Cayenne - instead of NULLs we prolly
> >> need to throw an Exception or something.
> >>
> >> Andrus
> >>
> >>
> >> On May 28, 2013, at 9:52 AM, giulio.ces...@gmail.com wrote:
> >>
> >>> Hello everybody,
> >>>
> >>> I am getting lost in trying to use an SQLTemplate query.
> >>>
> >>> I have tried to reduce the problem to the core, and this is the point
> >> where
> >>> I am stuck.
> >>>
> >>> The following two lines of code do what I was expecting them to do:
> >>>   Query query = new SelectQuery(SaleSummary.class);
> >>>  List<SaleSummary> saleSummariesToProcess =
> >>> objectContext.performQuery(query);
> >>>
> >>> Looking into the logs, this is the SQL statement generated
> automatically
> >> by
> >>> Cayenne:
> >>>> SELECT t0.amount, t0.unique_id, t0.period, t0.registrationDate,
> >>>> t0.id_contract, t0.id_currency, t0.id_customer, t0.id_frontendSystem,
> >>>> t0.id_saleSummary, t0.id_store FROM wolf.SaleSummary t0
> >>>
> >>> So far, so good. But as soon as I replace the SelectQuery with a
> >>> SQLTemplate, I can no longer get any result. Actually, I get the
> expected
> >>> results, but instead of being instances of SaleSummary, the list
> contains
> >>> all nulls.
> >>>
> >>> I need to run a fairly complex query that I would like to store into
> the
> >>> model, but also the most trivial tests are failing.
> >>>
> >>> I have tried all the following options, all with the same bad result:
> >>> - query = new SQLTemplate(SaleSummary.class, "select * from
> >> salesummary");
> >>> - query = new SQLTemplate(SaleSummary.class, "SELECT * FROM
> >> SALESUMMARY");
> >>> - query = new SQLTemplate(SaleSummary.class, "SELECT t0.amount,
> >>> t0.unique_id, t0.period, t0.registrationDate, t0.id_contract,
> >>> t0.id_currency, t0.id_customer, t0.id_frontendSystem,
> t0.id_saleSummary,
> >>> t0.id_store FROM wolf.SaleSummary t0");
> >>>
> >>> This latest option includes the same exact SQL query logged by the
> >> initial
> >>> working code (that was using the SelectQuery class instead of
> >> SQLTemplate).
> >>>
> >>> Am I doing something blatantly wrong, or is there something weird going
> >> on
> >>> here?
> >>>
> >>> BTW, I am using Cayenne 3.1B2. I was tempted to go back to 3.0.2, but
> >> being
> >>> the model files not compatible, I was trying to understand why it is
> not
> >>> working on 3.1B2 first.
> >>>
> >>> Any hints?
> >>>
> >>> Best regards,
> >>>
> >>> Giulio Cesare
> >>
> >>
>
>

Reply via email to