Thanks so much for this Thomas. However, the problem here is that what if the value of a column needs to be null intentionally? This will not work in that case. And unfortunately, there is a very high likelihood of this happening in my application.
~Rashmi
From: Wible, Thomas E [mailto: [EMAIL PROTECTED]]
Sent: Thursday, February 16, 2006 6:15 PM
To: Rashmi Dave
Cc: [email protected]
Subject: RE: Selective Update of fields depending on values in object
while my predecessor didn't grok the difference between $delimiter$ & #delimiter#, he did come up with exactly what u r looking 4:
<sqlmap>
<resultmap id='parameter' class='my.param.obj'>
<result property='id' column='id'>
<result property='name' column='name'>
<result property='date' column='date'>
<result property='value' column='value'>
...
</resultmap>
<update id='updateParam' parameterClass='my.param.obj'>
UPDATE paramTable SET
<dynamic>
<isNotNull prepend="," property="name">
name = $name$
</isNotNull>
<isNotNull prepend="," property="date">
date = $date$
</isNotNull>
<isNotNull prepend="," property="value">
value= $value$
</isNotNull>
</dynamic>
WHERE id = $id$
</update>
when i've added columns, i've had to use the # delimiter, but the above works just fine 4 me;-)
Rashmi has correctly identified the core problem - sometimes you want a column to be null, and sometimes you want to ignore the column. The only way I can think to solve the problem is to have a seperate set of indictors that denote whther you want to ignore the field in the update or not. Has anyone thought of a bettter way? It should be pretty easy to generate this with Abator.
Jeff Butler
On 2/16/06, Rashmi Dave <[EMAIL PROTECTED]> wrote:
