db-torque-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas Fischer <fisc...@seitenbau.net>
Subject AW: Copying Torque Object
Date Mon, 29 May 2006 08:17:51 GMT
It would help me not to forget it :-)

    Thanks in advance,

         Thomas

"Thoralf Rickert" <thoralf.rickert@cadooz.de> schrieb am 29.05.2006
08:50:15:

> Is it useful to make a "feature request" in JIRA?
>
> > -----Urspr√ľngliche Nachricht-----
> > Von: Thoralf Rickert [mailto:thoralf.rickert@cadooz.de]
> > 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: torque-dev-unsubscribe@db.apache.org
> > For additional commands, e-mail: torque-dev-help@db.apache.org
> >
> >
> >
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
> For additional commands, e-mail: torque-dev-help@db.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org


Mime
View raw message