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