Hi Alin,

How about using <isNotNull /> or <isNotEmpty />?

<insert id="insertExample" parameterClass="com.test.Example">
 INSERT INTO vjobs (
  name, status
  <isNotNull property="description" prepend=",">
   description
  </isNotNull>
 ) VALUES (
  #name#, #status#
  <isNotNull property="description" prepend=",">
   #description#
  </isNotNull>
 )
</insert>

I haven't tested this, but it should work.

Regards,
Iwao

on 09.3.18 9:42 PM Alin Popa said the following:
> Thanks Nicholoz,
> 
> This is what I've done. And I also have a facade that will abstract
> for the user, the insert actions.
> I thought that ibatis knows how to handle this, or have a trick for it.
> 
> On Wed, Mar 18, 2009 at 10:51 AM, Nicholoz Koka Kiknadze
> <kikna...@gmail.com> wrote:
>>> Why don't you just exclude this field in the <insert>?
>> <insert id="insertExampleWithDefaults" parameterClass="com.test.
>> Example">
>>  INSERT INTO vjobs(name, description) VALUES
>> (#name#,#description#)
>> </insert>
>>
>> GL
>>
>>
>>
>> IMO because sometimes one need to insert NULL values too. So why don't you
>> add another insert statement to your xml that will omit the status field?
>>
>> On Wed, Mar 18, 2009 at 4:19 AM, Kengkaj Sathianpantarit
>> <kengka...@gmail.com> wrote:
>>> However, I think that default value is good in the case that we don't need
>>> to specify value in INSERT command.
>>> Why don't you just exclude this field in the <insert>?
>>>
>>> For <update>, I think that we should specify value explicitly in the
>>> model, error from database is correct behavior in case the field has null
>>> value (actually this is the reason why we set NOT NULL constraint).
>>>
>>> Kengkaj
>>>
>>>
>>> On Wed, Mar 18, 2009 at 3:06 PM, Alin Popa <alin.p...@gmail.com> wrote:
>>>> Thanks Kengkaj,
>>>>
>>>> But from what I read it seems that nullValue is used to substitute
>>>> value with a database NULL.
>>>> The thing is that I'm not allowed to use null since field is "NOT NULL".
>>>>
>>>>
>>>> On Wed, Mar 18, 2009 at 6:00 AM, Kengkaj Sathianpantarit
>>>> <kengka...@gmail.com> wrote:
>>>>> Use null value replacement feature, read user manual.
>>>>>
>>>>> Kengkaj
>>>>>
>>>>> On Tue, Mar 17, 2009 at 10:37 PM, Alin Popa <alin.p...@gmail.com>
>>>>> wrote:
>>>>>> Hi,
>>>>>>
>>>>>> I have the following db table (MySQL):
>>>>>>
>>>>>> CREATE TABLE `examples`(
>>>>>>        `id` SERIAL PRIMARY KEY,
>>>>>>        `name` VARCHAR(255),
>>>>>>        `status` VARCHAR(20) NOT NULL DEFAULT 'ready',
>>>>>>        `description` TEXT
>>>>>> ) ENGINE=innodb DEFAULT CHARSET utf8 DEFAULT COLLATE utf8_bin;
>>>>>>
>>>>>>
>>>>>> Using ibatis sql-map I'm doing this:
>>>>>>
>>>>>> <insert id="insertExample" parameterClass="com.test.Example">
>>>>>>  INSERT INTO vjobs(name, status, description) VALUES
>>>>>> (#name#,#status#,#description#)
>>>>>> </insert>
>>>>>>
>>>>>> When inserting an example object, without having "status" field set, I
>>>>>> got Column 'status' cannot be null; but the DEFAULT is 'ready'.
>>>>>>
>>>>>> How can this be managed using ibatis ?
>>>>>> It is possible ?
>>>>>>
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>> Alin
>>>>>
>>>>
>>>>
>>>> --
>>>> Best Regards,
>>>>
>>>> Alin

Reply via email to