Yeah a bug report would be great. But we'll need more information to reproduce 
the problem. A disjoint prefetch on to-one is the most common case and it works 
of course, so there has to be something special about your DB or your mapping. 
A full DataMap (or at least the part with these 2 entities) should help. If you 
can't expose it publicly, you can still open a Jira, and email me the mapping 
privately. 

Thanks,
Andrus

> On May 13, 2015, at 12:29 PM, Hugi Thordarson <h...@karlmenn.is> wrote:
> 
> Thanks Andrus. Setting the semantics to 
> PrefetchTreeNode.JOINT_PREFETCH_SEMANTICS made the relationship resolve 
> properly (and modified the SQL to use a join rather than a separate fetch for 
> fetching the products). Looks like a bug, shouldn’t I report this?
> 
> And I’m generating properties in my template—I’m just using slightly modified 
> templates for easier conversion of my old EOF code.
> 
> Cheers,
> - hugi
> 
> // Hugi Thordarson
> // http://www.loftfar.is/ <http://www.loftfar.is/>
> // s. 895-6688
> 
> 
> 
>> On 13. maí 2015, at 09:00, Andrus Adamchik <and...@objectstyle.org> wrote:
>> 
>> Actually it is performed. It is a "disjoint prefetch", so a second query is 
>> generated. I still don't see any clues as to why the prefetch is not 
>> working, so here is a purely random suggestion: you can try other prefetch 
>> strategies and see if that makes any difference. E.g.:
>> 
>> query.addPrefetch( ProductLink.PRODUCT_KEY 
>> ).setSemantics(PrefetchTreeNode.JOINT_PREFETCH_SEMANTICS);
>> 
>> or 
>> 
>> query.addPrefetch( ProductLink.PRODUCT_KEY 
>> ).setSemantics(PrefetchTreeNode.DISJOINT_BY_ID_PREFETCH_SEMANTICS);
>> 
>> (BTW, looks like you are not using 4.0 cgen templates that would generate 
>> Property objects for each property?)
>> 
>> Andrus
>> 
>>> On May 13, 2015, at 11:48 AM, Hugi Thordarson <h...@karlmenn.is> wrote:
>>> 
>>> Hi Andrus.
>>> Sure, here it is. Looks like a fetch is never performed for the “products” 
>>> relationship…
>>> 
>>> https://gist.github.com/hugith/6d0ccde4aa8877e26454
>>> 
>>> Thanks!
>>> - hugi
>>> 
>>> // Hugi Thordarson
>>> // http://www.loftfar.is/ <http://www.loftfar.is/>
>>> // s. 895-6688
>>> 
>>> 
>>> 
>>>> On 13. maí 2015, at 08:36, Andrus Adamchik <and...@objectstyle.org> wrote:
>>>> 
>>>> Can you post the generated SQL by any chance? Also is there anything 
>>>> special about the relationship, or is it a simple to-one ?
>>>> 
>>>> Andrus
>>>> 
>>>>> On May 12, 2015, at 6:02 PM, Hugi Thordarson <h...@karlmenn.is> wrote:
>>>>> 
>>>>> Hi all.
>>>>> 
>>>>> I have a weird case (using Cayenne 4.0-M2) where if I add a prefetch to a 
>>>>> relationship, the relationship is nullified (will contain nothing). 
>>>>> Consider the following code:
>>>>> 
>>>>> SelectQuery<ProductLink> q = SelectQuery.query( ProductLink.class );
>>>>> q.addPrefetch( ProductLink.PRODUCT_KEY ); // <---- This line is the 
>>>>> culprit
>>>>> 
>>>>> List<ProductLink> links = oc().select( q );
>>>>> 
>>>>> for( ProductLink link : links ) {
>>>>>   System.out.println( link.product() );
>>>>> }
>>>>> 
>>>>> Without the prefetch, the “product” relationship is properly populated 
>>>>> for each “ProductLink” object, but if I include the prefetch, the 
>>>>> relationship is always null.
>>>>> 
>>>>> Any ideas?
>>>>> 
>>>>> Cheers,
>>>>> - hugi
>>>> 
>>> 
>> 
> 

Reply via email to