I am not sure why people continue to do this.... why not
insert into some_table ( id, state, date ) values ( #id:NUMERIC#, #state:VARCHAR#, #date:DATE# ) This way it will insert the right data every time. If the value is null you get a null in the DB. I think you are only going to cause yourself extra pain in the long run with long complicated dynamic sqlmaps. Nathan On Wed, Dec 24, 2008 at 3:28 AM, De Gaetano Giuseppe <[email protected]> wrote: > Hi all, > > I faced with the same problem and I solved in this way: > > <insert id="insert_dynamic" parameterClass="Input"> > > INSERT INTO some_table > > <dynamic prepend=" ("> > > <isNotNull prepend="," property="id "> > > ID > > </isNotNull> > > <isNotNull prepend="," property="state"> > > STATE > > </isNotNull> > > <isNotNull prepend="," property="date"> > > > DATE > > </isNotNull> > > ) > > </dynamic> > > <dynamic prepend=" VALUES ("> > > <isNotNull prepend="," property="id "> > > > #id# > > </isNotNull> > > <isNotNull prepend="," property="state"> > > > #state# > > </isNotNull> > > <isNotNull prepend="," property="date"> > > > #date# > > </isNotNull> > > ) > > </dynamic> > > </insert> > > > > Giuseppe > > > > ________________________________ > > Da: Gil Vernik [mailto:[email protected]] > Inviato: mercoledì 24 dicembre 2008 10.49 > A: [email protected] > Oggetto: insert statement > > > > Hi there, > > I would like to write a dynamic insert statement, but both fields and values > are dynamic. > > I mean > > <insert id="someIDhere" parameterClass="java.util.HashMap"> > > insert into table_one ( > > !!! dynamic list of keys from the HashMap > > ) values ( > > !!! values > > ); > > </insert> > > > > I want both the list of column names and it's values to be filled > automatically, depends on the parameterClass. How can I do it? I don't care > to use something else, instead of java.util.Hashmap. > > > > Thanks, > > Gil. > > > > This message contains confidential information and is intended only for the > individual named. If you are not the named addressee you should not > disseminate, distribute or copy this e-mail. Please notify the sender > immediately by e-mail if you have received this e-mail by mistake and delete > this e-mail from your system. E-mail transmission cannot be guaranteed to be > secure or error-free as information could be intercepted, corrupted, lost, > destroyed, arrive late or incomplete, or contain viruses. The sender > therefore does not accept liability for any errors or omissions in the > contents of this message, which arise as a result of e-mail transmission. If > verification is required please request a hard-copy version.
