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

- james

On 4/13/06, Daniel Williams <danielw at staff.iinet.net.au> wrote:
>
>
> Hi,
>
> 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 ?
>
> Daniel
>
>
>
> _______________________________________________
> ClassDBI mailing list
> ClassDBI at lists.digitalcraftsmen.net
> http://lists.digitalcraftsmen.net/mailman/listinfo/classdbi
>



--
.--- .- -- . ... -.-- --- ---
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digitalcraftsmen.net/mailman/private/classdbi/attachments/20060415/faa7b13c/attachment.html


More information about the ClassDBI mailing list