Is it useful to make a "feature request" in JIRA? > -----Ursprüngliche Nachricht----- > Von: Thoralf Rickert [mailto:[EMAIL PROTECTED] > Gesendet: Mittwoch, 24. Mai 2006 15:13 > An: Apache Torque Developers List > Betreff: Copying Torque Object > > > Hi! > > I've a small problem with the copy() and copyInto() methods > in the generated Torque objects. I've tables with > dependencies from other tables (for example a table "login" > which has a foreign key to a table "address"). I want to use > the BaseAddress.copy() method to copy the address object and > save it. If I use this method, it also loads and copies > internally all logins which are linked to the source address > to the new address. So, it makes a deep copy. Is it possible, > to override this behaviour outside the Base* class without > creating a totally new > copy() method? I don't think so... > > I've noticed this some time a go and wrote my own copy() > method in the extended Address class like this: > > public Address copy(boolean deepcopy) throws Exception { > if (deepcopy) > return super.copy(); > else { > Address newAddress = new Address(); > newAddress.setFirstname(firstname); > .... > return newAddress; > } > } > > But after a little while I've added a new column to the > address table and forgot to update the new copy() method too. > So I didn't copy all data, if I use copy(false) - which takes > some time to find and fix. I can't make a deep copy because > there could be many thousands of referer rows to an address. > I just want to copy the address data. > > So, the best way would be, that this copy(boolean) method > should be added during BaseAddress generation in that class. > I think, it's not very complicated to add this "feature". > Here is my proposal: > > 1. add in Object.vm a new boolean parameter to copy() like this > public $table.JavaName copy(boolean deepcopy) throws > TorqueException > { > return copyInto(new ${table.JavaName}(),deepcopy); > } > 2. create two new downwards compatible methods copy() and copyInto() > public $table.JavaName copy() throws TorqueException > { > return copy(true); > } > protected $table.JavaName copyInto($table.JavaName > copyObj) throws TorqueException > { > return copyInto(copyObject, true); > } > 3. add a new parameter deepcopy to the old copyInto() method > and check that variable before making the > deepcopy. I think, it's not necessary to submit that value > recursivly to the referers. > protected $table.JavaName copyInto($table.JavaName > copyObj, boolean) throws TorqueException > { > .... > #if ($complexObjectModel) > if (deepcopy) { > #foreach ($fk in $table.Referrers) > ... > #end > } > #end > } > > Is that possible or did I forgot something important? > > bye > Thoralf > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > >
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]