I discovered this by accident, during unit tests. I needed an expected
value and then I was inserting into it with specific values.

In fact, I was wondering if a little bit of reflection like

    public Object insert(Object o) throws SQLException{
        return this.dbclient.insert("insert"+o.getClass().getSimpleName(),o);
    }

could make my life easier. But it seems it won't be a good idea

in fact, it's worse than I thought

      1) inserting an object with id explicitly equal zero will make
         mysql create a new object with the next autoincrement value
         and will simply ignore all the other column values. Silently

      2) inserting an object with another explicitly non-zero id value
         will fail the query ibatis uses to get the next generated id
         (basically because no id was generated) and will return zero

good bye reflection :(

On 12/7/05, Larry Meadors <[EMAIL PROTECTED]> wrote:
> Why are you inserting into an auto_increment field?
>
> Larry
>
>
> On 12/7/05, Leonardo Kenji Shikida <[EMAIL PROTECTED]> wrote:
> > if I try to insert an object with id=0 into a mysql table that have an
> > autoincrement id column, strange things happens
> >
> > mysql silently inserts that object with messy values. very dangerous.
> >
> > is there any workaround for this in mysql or ibatis? or will I have to
> > check explictly for zeroed ids and throw an exception?
> >
> > []
> >
> > Kenji
> > _______________________
> > http://kenjiria.blogspot.com
> > http://gaitabh.blogspot.com
> >
>


--

[]

Kenji
_______________________
http://kenjiria.blogspot.com
http://gaitabh.blogspot.com

Reply via email to