On 5 May 2006, John Siracusa wrote:
> There's no way around copying every field when making a copy! :) That's
> just what RDBO's (undocumented) clone() method does. It's not documented
> because I'm not sure if it does everything that a clone method should do.
> You can be the first to try it and find out! :)
> my $obj = MyClass->new(nr=>1)->load;
>
> my $obj2 = $obj->clone; # copies all column values into a new object
>
> $obj2->id(undef); # still need to erase the primary key value
> $obj2->price($a_changed_value); # make any other changes...
>
> # Don't really "need" to do this, but it will save a db connection
> $objs->db($obj->db);
>
> $obj2->save;
>
> Try it and tell me what you think.
Works great but also makes greedy. How about a related method that
also deletes the primary key and sets the db. And if the 'set'
accessors returned the object, even this would be possible:
$obj->clone->some_field('new value')->save;
Too greedy? Then perhaps this one?:
$obj->clone(some_field => 'new value')->save;
But even without any changes clone() helps a lot!
Thanks,
Michael
-------------------------------------------------------
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