Sybase, unfortunately, not MSSQL.
I took out the batch from the transaction, and everything now works. I
don't understand why it made a difference (the selectKeys were *not* in
the same batch, just in the same transaction) but oh well.
Larry Meadors wrote:
Can you try this using scope_identity() instead of @@identity?
That *may* fix the problem.
Larry
On 10/12/05, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
Hello, I am doing the following within one transaction:
createJob(Job job);
[somewhat heavy calculations that don't belong in the batch]
begin batch:
createDeployment(Deployment deployment);
...
end batch;
My problem is that after the batch is run, the deployment has the job's
id. (The setters on the beans are respectively correct.)
The xml invoked by createJob looks like this:
<insert id="createJob" parameterClass="job">
INSERT INTO Job (userName)
VALUES (#userName#)
<selectKey resultClass="int" keyProperty="jobId">
SELECT @@IDENTITY as value
</selectKey>
</insert>
The xml invoked by createDeployment looks like this:
<insert id="createDeployment" parameterClass="deployment">
INSERT INTO Deployment (
environmentId, deploymentTypeId, deploymentStatusId,
deploymentTime, threadCountOverride
) VALUES (
#environmentId#, #deploymentTypeId#, #deploymentStatusId#,
#deploymentTime#, #threadCountOverride#
)
<selectKey resultClass="int" keyProperty="deploymentId">
SELECT @@IDENTITY as value
</selectKey>
</insert>
I am using Spring transactions and batches, but I have verified that the
ibatis objects (& batch) are apparently being set up correctly.
|