[CDBI] has_many caching
.--- .- -- . ...
yoorobot at gmail.com
Sat Apr 15 23:55:11 BST 2006
you mean you are making calls to $obj->entries in succession to retrieve the
same set of data? If so, why don't you just copy the returned array instead
of making a duplicate request?
On 4/13/06, Daniel Williams <danielw at staff.iinet.net.au> wrote:
> New to the list and relatively new to class::dbi.
> I have had a look around and can't seem to find any example of what I'm
> trying to achieve.
> I have an Event Table, and an Entry Table.
> Event is a 1 to many relationship with Entry.
> Therefore we use for event:
> ChimeFault::Event->has_many(entries => 'ChimeFault::Entry', 'faultid');
> And for entry:
> ChimeFault::Entry->has_a(faultid => 'ChimeFault::Event');
> Ok now I retrieve an entry.
> my $entry = ChimeFault::Event->retrieve(1);
> and then grab all its entries:
> my @entries = $entry->entries;
> my @secondset = $entry->entries;
> The problem is that the Class::DBI executes the SQL to look up the
> entries twice.
> I tried caching the returned data in the Event class, but the problem is
> that we are using mod_perl. When I do this the garbage script gets all
> caught up with the fact that there is event->entry->event->entry
> reference and hence never reaching 0 reference count, which means the
> data stays in memory and all sorts of bad things happen.
> Any suggestions ?
> ClassDBI mailing list
> ClassDBI at lists.digitalcraftsmen.net
.--- .- -- . ... -.-- --- ---
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the ClassDBI