On 2/6/07, Derek Watson <[EMAIL PROTECTED]> wrote:
> How would I go about deleting only the UK price? The following seems to
> delete the UK price record, but leaves it in the collection of $p->prices.
>
> my ($price) = grep { $_->region eq 'UK' } $p->prices;
> $price->delete;
After doing that, you could set prices to undef to cause the
collection to be re-fetched from the database on the next access:
my($price) = grep { $_->region eq 'UK' } $p->prices;
$price->delete;
$p->prices(undef); # forget previously fetched collection
@prices = $p->prices; # collection no longer contains deleted entry
> Should I also be calling $p->save? Or should I be doing something more like
> this?
>
> my @prices = grep { $_->region ne 'UK' } $p->prices;
> $p->prices(@prices);
> $p->save;
That works too, but it's quite inefficient, deleting and re-inserting
the entire price list (now sans one price) on save().
> Is there a more explicit way to do what I'm after without resorting to this
> grep business?
Both of those techniques seem pretty explicit to me :) I'm not sure
what more could be done without delving into some extra magic, e.g.
making each price aware of what collection it was fetched as part of
so that $price->delete will also cause it to be removed from the list.
But magic like that it a lot more trouble than it's worth, IMO.
(It's not hard to think of scenarios where that magic would break.)
If you do this a lot, it shouldn't be too much trouble to make a
helper method to hide the details of the implementation.
> I remember talk a couple weeks back about $p->find_prices(region => 'UK')
> functionality. Will this be included in a release sometime soon?
Yes, probably by the end of the month at the latest. It's in SVN now
if you want to try it.
-John
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Rose-db-object mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/rose-db-object