ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nicholoz Koka Kiknadze <kikna...@gmail.com>
Subject Re: mysql default value
Date Wed, 18 Mar 2009 13:16:23 GMT
I do not like idea of keeping defaults both in database and application.

If I have a not nullable database field with some default value, besides
setting default value in database I use 'before insert' table trigger that
checks if supplied value is NULL and sets it to the desired value.

Well, I believe  database vendors should treat not-null fields with default
values in that way saving me from writing those tedious triggers ;)

On Wed, Mar 18, 2009 at 9:00 AM, Alex Sherwin
<alex.sherwin@acadiasoft.com>wrote:

> What I ususally do:
>
>
> public String getStatus() {
>  return null == status ? "Some Default Value" : status;
>
> }
>
>
> Alin Popa wrote:
>
>> 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
>> <kiknadze@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
>>> <kengkaj.s@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.popa@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
>>>>> <kengkaj.s@gmail.com> wrote:
>>>>>
>>>>>
>>>>>> Use null value replacement feature, read user manual.
>>>>>>
>>>>>> Kengkaj
>>>>>>
>>>>>> On Tue, Mar 17, 2009 at 10:37 PM, Alin Popa <alin.popa@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
>>>>>
>>>>>
>>>>
>>>
>>
>>
>>
>>
>>
>
>
>

Mime
View raw message