Hi William!
The problem is that you're updating the primary key.
You call something like emailObj.setEmail("[EMAIL PROTECTED]"). The old 
EMail-Address is overwritten and not longer present. If you now call 
emailObj.save() a update will be performed due to emailObj.isNew() 
returns false. Torque will generate a SQL statement like "UPDATE EMAIL 
SET ... WHERE EMAIL.EMAIL = "[EMAIL PROTECTED]". This update will fail 
because no such row will be found in your database. 
You will have to do a doUpdate yourself.

Here's an example for solving your problem:
Criteria value = new Criteria();
value.add(EMailPeer.EMAIL, "[EMAIL PROTECTED]");

Criteria selection = new Criteria();
selection.add(EMailPeer.EMAIL, currentEMail.getEMail());

EMailPeer.doUpdate(selection, value);

Hope this helps.

F. Fray

P.S.

Be aware of changing a primary key! Not only referential integrity in 
your database must be guaranteed by you application, but the identity 
of your eMail object will change also.
You should take a minute to think about choosing an eMail-address as 
primary key of a table. In most cases a numeric identifier will be the 
first choice. 

----- Originalnachricht -----
Von: "??(William)" <[EMAIL PROTECTED]>
Datum: Donnerstag, 17. Juni 2004 1:58 am
Betreff: need help

> 
> Hi All,
> 
> I need help. 
> 
> I set email as a table' primary key,  can I modify this field 
> through Torque save() method.  
> 
> looks it don't work,  when I first retrive obj from old email 
> primary key, then I change email field using setEmail() method, 
> 
> at last, obj.save(), but it doesn't replace email field with new 
> data. 
> 
> Could anyone tell me what the problem is ?
> 
> 
> William
> 
> 
> 
> 
> -------------------------------------------------------------------
> --
> 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]

Reply via email to