RE: [CDBI] Disable caching of column values?

"Eric Busto" <[email protected]> Thu, 7 Jun 2007 15:23:08 -0700
Newsgroups gmane.comp.lang.perl.modules.class-dbi
Message-ID <[email protected]>
I was hoping for a method that would not require additional code in the
application side.  However, you pointing out the need to call
_attribute_delete allowed me to fine tune my Google and code searching.
I came across the following post to the CDBI mailing list:


-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Perrin
Harkins
Sent: Thursday, June 07, 2007 2:52 PM
To: Eric Busto
Cc: classdbi-uVLvtXkw1RPgjt3iqB9Uk5F3r5kRpbQ7rE5yTffgRl4@public.gmane.org
Subject: Re: [CDBI] Disable caching of column values?


On 6/7/07, Eric Busto <[email protected]> wrote:
> When the still-running application calls an accessor,
> I want it to have the latest data, instead of what is cached inside
the
> object.
>
> Can someone tell me how to disable the column value caching, so
> Class::DBI/the object will hit the database every time the accessor is
> called?

Create a new object every time.

my $foo = Foo->retrieve(17);
print $foo->bar;
undef $foo;
my $foo = Foo->retrieve(17); # fetched again
print $foo->bar; # current value

Alternatively, you can delete a single column so it will be fetched
again:

$foo->attribute_delete('bar');

That's a private method though and is probably different in different
releases.

- Perrin
-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------