Try "SELECT SCOPE_IDENTITY() AS ID", you specified keyProperty="id", so
iBATIS looks for a column "id" which is not there, hence the null.

 

Niels

________________________________

From: Mark Volkmann [mailto:[EMAIL PROTECTED] 
Sent: dinsdag 27 maart 2007 18:45
To: [email protected]
Subject: Re: SQL Server JDBC drivers

 

On Mar 22, 2007, at 1:40 AM, Abdullah Kauchali wrote:





Avoid using @@Identity and instead use Scope_Identity().

 

Here is a blogg that summarises the point:

 

http://cf-bill.blogspot.com/2005/08/identity-scopeidentity-identcurrent.
html

 

Has links to MSDN for details.

 

I've got my code working now, but only with @@IDENTITY, not with
SCOPE_IDENTITY().

 

If I have this inside a table element in my AbatorConfig.xml ...

 

   <generatedKey column="id" sqlStatement="SqlServer" identity="true"/>

 

then it generates this in my mapping file ...

 

  <insert id="abatorgenerated_insert"
parameterClass="com.savealot.xademo.model.Address" >

    insert into GWT_Test..address (street, city, state, zip)

    values (#street:VARCHAR#, #city:VARCHAR#, #state:VARCHAR#,
#zip:INTEGER#)

    <selectKey resultClass="java.lang.Integer" keyProperty="id" >

      SELECT SCOPE_IDENTITY()

    </selectKey>

  </insert>

 

and when I run I get ...

 

java.lang.NullPointerException

 
com.savealot.client.SpringDAOClient.addAddress(SpringDAOClient.java:56)

 
com.savealot.client.SpringDAOClient.loadDB(SpringDAOClient.java:84)

 

However, if change the generateKey element to this ...

 

   <generatedKey column="id" sqlStatement="SELECT @@IDENTITY AS ID"
identity="true"/>

 

then it generates this in my mapping file ...

 

  <insert id="abatorgenerated_insert"
parameterClass="com.savealot.xademo.model.Address" >

    insert into GWT_Test..address (street, city, state, zip)

    values (#street:VARCHAR#, #city:VARCHAR#, #state:VARCHAR#,
#zip:INTEGER#)

    <selectKey resultClass="java.lang.Integer" keyProperty="id" >

      SELECT @@IDENTITY AS ID

    </selectKey>

  </insert>

 

where the only difference is the SELECT statement, and everything works
fine.

 

Any idea why I can't get SCOPE_IDENTITY() to work? Perhaps something I'm
doing wrong defining the table?





        -----Original Message-----

        From: Niels Beekman [mailto:[EMAIL PROTECTED]

        Sent: Wednesday, March 21, 2007 10:19 PM

        To: [email protected]

        Subject: FW: SQL Server JDBC drivers

         

        And for the archives...

         

        -----Original Message-----

        From: Niels Beekman

        Sent: woensdag 21 maart 2007 20:33

        To: 'Mark Volkmann'

        Subject: RE: SQL Server JDBC drivers

         

        Sure:

         

        <insert id="Example_insert" parameterClass="Example">

          INSERT INTO example (example_column)

          VALUES (#exampleColumn#)

          <selectKey keyProperty="exampleId" resultClass="int">

            SELECT @@IDENTITY AS ID

          </selectKey>

        </insert>

         

        iBATIS will then populate the property "exampleId" with the
value of

        the

        auto-incremented column.

         

        HTH,

         

        Niels

         

        -----Original Message-----

        From: Mark Volkmann [mailto:[EMAIL PROTECTED]

        Sent: woensdag 21 maart 2007 20:28

        To: Niels Beekman; Graeme J Sweeney; Rose, Greg

        Cc: Dan Berghoff

        Subject: Re: SQL Server JDBC drivers

         

        Thanks to the three of you for replying!

         

        We're having trouble getting iBATIS to work with tables that
have an

        integer primary key that is auto-incremented. If you have done
that,

        can you send me the relevant snippet of XML from one of your
{name}

        _SqlMap.xml files?

         

        Thanks!

         

        On Mar 21, 2007, at 11:36 AM, Niels Beekman wrote:

         

                Hi,

                 

                We use jTDS (http://jtds.sf.net) for several years now,
it has

                excellent

                performance and any bugs (which are very rare) are dealt
with

                promptly.

                 

                Niels

                 

                -----Original Message-----

                From: Mark Volkmann [mailto:[EMAIL PROTECTED]

                Sent: woensdag 21 maart 2007 17:28

                To: [email protected]

                Subject: SQL Server JDBC drivers

                 

                If you have successfully used iBATIS with SQL Server,
can you tell me

                what JDBC driver(s) have worked for you?

 

 

Reply via email to