Re: [CDBI] has_many caching
".--- .- -- . ..." <[email protected]>
| Newsgroups | gmane.comp.lang.perl.modules.class-dbi |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> 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-Ra3b/[email protected] > http://lists.digitalcraftsmen.net/mailman/listinfo/classdbi > -- .--- .- -- . ... -.-- --- --- _______________________________________________ ClassDBI mailing list ClassDBI-Ra3b/[email protected] http://lists.digitalcraftsmen.net/mailman/listinfo/classdbi