ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Zarar Siddiqi" <zarar.sidd...@utoronto.ca>
Subject Re: Sybase selectKey problem
Date Fri, 07 Oct 2005 03:21:52 GMT
Try this as the <selectKey> query.  I think you have to select the column as 
"value".   I'm assuming your "deployment" class has a "deploymentId" 
property.

<selectKey resultClass="int" keyProperty="deploymentId">
            SELECT @@IDENTITY AS value
</selectKey>

Zarar


----- Original Message ----- 
From: <reubenf@sonic.net>
To: <user-java@ibatis.apache.org>
Sent: Thursday, October 06, 2005 9:00 PM
Subject: Sybase selectKey problem


> #1 -- I'm trying to use selectKey to create keys for me. DB is Sybase.
>
> My insert is as follows:
>
>    <insert id="createDeployment" parameterClass="deployment">
>        INSERT INTO Deployment (environmentId, deploymentTypeId, userName,
> deploymentStatusId, deploymentTime, threadCountOverride)
>        VALUES (#environmentId#, #deploymentTypeId#, #userName#,
>     #deploymentStatusId#, #deploymentTime#,
> #threadCountOverride#)       <selectKey resultClass="int"
> keyProperty="deploymentId">
>            SELECT @@IDENTITY AS deploymentId
>        </selectKey>
>    </insert>
>
> (BTW the dev guide does not mention keyProperty -- I found that in this
> thread:
> http://www.mail-archive.com/user-java@ibatis.apache.org/msg00044.html)
>
>
> I get the following error:
>
> Caused by: com.sybase.jdbc3.jdbc.SybSQLException: The column deploymentId
> in table Deployment does not allow null values.
>
> at
> com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:91)
> at
> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:442)
> at
> com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:81)
> at
> org.springframework.orm.ibatis.SqlMapClientTemplate$9.doInSqlMapClient(SqlMapClientTemplate.java:319)
> at
> org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:181)
> at
> org.springframework.orm.ibatis.SqlMapClientTemplate.insert(SqlMapClientTemplate.java:317)
>
>
> #2 -- Given that the insert/update statements are very much alike, is
> there a clean way to share the SQL between the two?
>
> Thanks
> Reuben
> 


Mime
View raw message