[Dbix-class] Prefetch Problem: Related data can't be fetched

Jess Robinson castaway at desert-island.me.uk
Tue Feb 26 15:45:02 GMT 2008


On Tue, 26 Feb 2008, Matt Lawrence wrote:

> Jess Robinson wrote:
>> 
>> On Tue, 26 Feb 2008, Matt Lawrence wrote:
>> 
>> Rubbish, whatever gave you that idea?
>
> Docs say:
>
> |prefetch| can be used with the following relationship types: |belongs_to|, 
> |has_one| (or if you're using |add_relationship|, any relationship declared 
> with an accessor type of 'single' or 'filter').

Then docs are bork, which doc is that?

You can now fetch a has_many quite happily, the only thing that doesnt 
work, iirc, is fetching 2 has_manys at the same level.

>> You can indeed prefetch a has_many rel.
>> 
> Excellent. How does that work? Do you get one instance of each object with a 
> prepopulated resultset?

Err, it works just like you called the rel, so if you fetched author and 
prefetched books, then $author->books in scalar context is a resultset 
with no extra query, and in list context its a list with no extra query.

Jess



More information about the DBIx-Class mailing list