Take a look at JDBCResultIterator. This is the heart of it.

On May 28, 2013, at 4:00 PM, "giulio.ces...@gmail.com" 
<giulio.ces...@gmail.com> wrote:

> 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