[ibatis 3] insert return generated id?

View: New views
6 Messages — Rating Filter:   Alert me  

[ibatis 3] insert return generated id?

by Josh Joy-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

I'm using MS Sql Server 2005, previously with iBatis v2.x, I was able
to get the generated id from an insert as the return value for a
method.

With iBatis v3, the return value is always "1", which I'm assuming
means 1 row was inserted.

How can I configure the api to return the generated id from an insert?
For the insert, I am using keyProperty="id" useGeneratedKeys="true",
and that seems to work... my object property id has the generated id.
Though I would like it as the return value for the insert method as
well...

Thanks,
Josh

---------------------------------------------------------------------
To unsubscribe, e-mail: user-java-unsubscribe@...
For additional commands, e-mail: user-java-help@...


Re: [ibatis 3] insert return generated id?

by Clinton Begin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I deprecated that behaviour, because the API was inconsistent.  And then the question would arise, how do I get the row count for the number of rows inserted? (it's possible).

So now the only way is to set the id on the objects themselves.  If you have a weird case where the ID is not on the parameter object, just wrap it in a Map.

Clinton

On Tue, Oct 13, 2009 at 6:38 AM, Josh Joy <joshjdevl@...> wrote:
Hi,

I'm using MS Sql Server 2005, previously with iBatis v2.x, I was able
to get the generated id from an insert as the return value for a
method.

With iBatis v3, the return value is always "1", which I'm assuming
means 1 row was inserted.

How can I configure the api to return the generated id from an insert?
For the insert, I am using keyProperty="id" useGeneratedKeys="true",
and that seems to work... my object property id has the generated id.
Though I would like it as the return value for the insert method as
well...

Thanks,
Josh

---------------------------------------------------------------------
To unsubscribe, e-mail: user-java-unsubscribe@...
For additional commands, e-mail: user-java-help@...



RE: [ibatis 3] insert return generated id?

by Rick.Wellman :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Some parts of this message have been removed. Learn more about Nabble's security policy.

I have not looked at the source you’re referring to but did you “deprecate” the behavior or “remove” the behavior.  I am not sure if you have a standing policy on things like this but here is my opinion:

I understand the need to “clean things up” in a major release but I tend to favor “formal deprecation” where possible to give the user community a migration path.

 

If this has all decided and taken care of already, then (as the church lady says)…. Nevermind.

 

From: Clinton Begin [mailto:clinton.begin@...]
Sent: Tuesday, October 13, 2009 10:24 AM
To: user-java@...; joshjdevl@...
Subject: Re: [ibatis 3] insert return generated id?

 

I deprecated that behaviour, because the API was inconsistent.  And then the question would arise, how do I get the row count for the number of rows inserted? (it's possible).

 

So now the only way is to set the id on the objects themselves.  If you have a weird case where the ID is not on the parameter object, just wrap it in a Map.

 

Clinton

On Tue, Oct 13, 2009 at 6:38 AM, Josh Joy <joshjdevl@...> wrote:

Hi,

I'm using MS Sql Server 2005, previously with iBatis v2.x, I was able
to get the generated id from an insert as the return value for a
method.

With iBatis v3, the return value is always "1", which I'm assuming
means 1 row was inserted.

How can I configure the api to return the generated id from an insert?
For the insert, I am using keyProperty="id" useGeneratedKeys="true",
and that seems to work... my object property id has the generated id.
Though I would like it as the return value for the insert method as
well...

Thanks,
Josh

---------------------------------------------------------------------
To unsubscribe, e-mail: user-java-unsubscribe@...
For additional commands, e-mail: user-java-help@...

 


Re: [ibatis 3] insert return generated id?

by Clinton Begin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Yes, removed.  It was made clear long ago, that iBATIS 3 would be a completely new implementation.  Some features are not carried forward, others are changed and there's a lot of new ones.  iBATIS is 7 years old.  It was time to make some changes.

Cheers,
Clinton 

On Tue, Oct 13, 2009 at 9:32 AM, Rick.Wellman <Rick.Wellman@...> wrote:

I have not looked at the source you’re referring to but did you “deprecate” the behavior or “remove” the behavior.  I am not sure if you have a standing policy on things like this but here is my opinion:

I understand the need to “clean things up” in a major release but I tend to favor “formal deprecation” where possible to give the user community a migration path.

 

If this has all decided and taken care of already, then (as the church lady says)…. Nevermind.

 

From: Clinton Begin [mailto:clinton.begin@...]
Sent: Tuesday, October 13, 2009 10:24 AM
To: user-java@...; joshjdevl@...
Subject: Re: [ibatis 3] insert return generated id?

 

I deprecated that behaviour, because the API was inconsistent.  And then the question would arise, how do I get the row count for the number of rows inserted? (it's possible).

 

So now the only way is to set the id on the objects themselves.  If you have a weird case where the ID is not on the parameter object, just wrap it in a Map.

 

Clinton

On Tue, Oct 13, 2009 at 6:38 AM, Josh Joy <joshjdevl@...> wrote:

Hi,

I'm using MS Sql Server 2005, previously with iBatis v2.x, I was able
to get the generated id from an insert as the return value for a
method.

With iBatis v3, the return value is always "1", which I'm assuming
means 1 row was inserted.

How can I configure the api to return the generated id from an insert?
For the insert, I am using keyProperty="id" useGeneratedKeys="true",
and that seems to work... my object property id has the generated id.
Though I would like it as the return value for the insert method as
well...

Thanks,
Josh

---------------------------------------------------------------------
To unsubscribe, e-mail: user-java-unsubscribe@...
For additional commands, e-mail: user-java-help@...

 



Re: [ibatis 3] insert return generated id?

by Josh Joy-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

If the feature has been removed, could you please clarify what is the
expected behavior if the return value for insert is not void?

On Tue, Oct 13, 2009 at 10:46 AM, Clinton Begin <clinton.begin@...> wrote:

> Yes, removed.  It was made clear long ago, that iBATIS 3 would be a
> completely new implementation.  Some features are not carried forward,
> others are changed and there's a lot of new ones.  iBATIS is 7 years old.
>  It was time to make some changes.
> Cheers,
> Clinton
>
> On Tue, Oct 13, 2009 at 9:32 AM, Rick.Wellman <Rick.Wellman@...>
> wrote:
>>
>> I have not looked at the source you’re referring to but did you
>> “deprecate” the behavior or “remove” the behavior.  I am not sure if you
>> have a standing policy on things like this but here is my opinion:
>>
>> I understand the need to “clean things up” in a major release but I tend
>> to favor “formal deprecation” where possible to give the user community a
>> migration path.
>>
>>
>>
>> If this has all decided and taken care of already, then (as the church
>> lady says)…. Nevermind.
>>
>>
>>
>> From: Clinton Begin [mailto:clinton.begin@...]
>> Sent: Tuesday, October 13, 2009 10:24 AM
>> To: user-java@...; joshjdevl@...
>> Subject: Re: [ibatis 3] insert return generated id?
>>
>>
>>
>> I deprecated that behaviour, because the API was inconsistent.  And then
>> the question would arise, how do I get the row count for the number of rows
>> inserted? (it's possible).
>>
>>
>>
>> So now the only way is to set the id on the objects themselves.  If you
>> have a weird case where the ID is not on the parameter object, just wrap it
>> in a Map.
>>
>>
>>
>> Clinton
>>
>> On Tue, Oct 13, 2009 at 6:38 AM, Josh Joy <joshjdevl@...> wrote:
>>
>> Hi,
>>
>> I'm using MS Sql Server 2005, previously with iBatis v2.x, I was able
>> to get the generated id from an insert as the return value for a
>> method.
>>
>> With iBatis v3, the return value is always "1", which I'm assuming
>> means 1 row was inserted.
>>
>> How can I configure the api to return the generated id from an insert?
>> For the insert, I am using keyProperty="id" useGeneratedKeys="true",
>> and that seems to work... my object property id has the generated id.
>> Though I would like it as the return value for the insert method as
>> well...
>>
>> Thanks,
>> Josh
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-java-unsubscribe@...
>> For additional commands, e-mail: user-java-help@...
>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-java-unsubscribe@...
For additional commands, e-mail: user-java-help@...


Re: [ibatis 3] insert return generated id?

by Clinton Begin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

This is the code for insert, update and delete (there's only one concept of "update").  

    PreparedStatement ps = (PreparedStatement) statement;
    ps.execute();
    int rows = ps.getUpdateCount();
    Object parameterObject = boundSql.getParameterObject();
    KeyGenerator keyGenerator = mappedStatement.getKeyGenerator();
    keyGenerator.processAfter(executor, mappedStatement, ps, parameterObject);
    return rows;

Clinton


On Tue, Oct 13, 2009 at 10:30 AM, Josh Joy <joshjdevl@...> wrote:
If the feature has been removed, could you please clarify what is the
expected behavior if the return value for insert is not void?

On Tue, Oct 13, 2009 at 10:46 AM, Clinton Begin <clinton.begin@...> wrote:
> Yes, removed.  It was made clear long ago, that iBATIS 3 would be a
> completely new implementation.  Some features are not carried forward,
> others are changed and there's a lot of new ones.  iBATIS is 7 years old.
>  It was time to make some changes.
> Cheers,
> Clinton
>
> On Tue, Oct 13, 2009 at 9:32 AM, Rick.Wellman <Rick.Wellman@...>
> wrote:
>>
>> I have not looked at the source you’re referring to but did you
>> “deprecate” the behavior or “remove” the behavior.  I am not sure if you
>> have a standing policy on things like this but here is my opinion:
>>
>> I understand the need to “clean things up” in a major release but I tend
>> to favor “formal deprecation” where possible to give the user community a
>> migration path.
>>
>>
>>
>> If this has all decided and taken care of already, then (as the church
>> lady says)…. Nevermind.
>>
>>
>>
>> From: Clinton Begin [mailto:clinton.begin@...]
>> Sent: Tuesday, October 13, 2009 10:24 AM
>> To: user-java@...; joshjdevl@...
>> Subject: Re: [ibatis 3] insert return generated id?
>>
>>
>>
>> I deprecated that behaviour, because the API was inconsistent.  And then
>> the question would arise, how do I get the row count for the number of rows
>> inserted? (it's possible).
>>
>>
>>
>> So now the only way is to set the id on the objects themselves.  If you
>> have a weird case where the ID is not on the parameter object, just wrap it
>> in a Map.
>>
>>
>>
>> Clinton
>>
>> On Tue, Oct 13, 2009 at 6:38 AM, Josh Joy <joshjdevl@...> wrote:
>>
>> Hi,
>>
>> I'm using MS Sql Server 2005, previously with iBatis v2.x, I was able
>> to get the generated id from an insert as the return value for a
>> method.
>>
>> With iBatis v3, the return value is always "1", which I'm assuming
>> means 1 row was inserted.
>>
>> How can I configure the api to return the generated id from an insert?
>> For the insert, I am using keyProperty="id" useGeneratedKeys="true",
>> and that seems to work... my object property id has the generated id.
>> Though I would like it as the return value for the insert method as
>> well...
>>
>> Thanks,
>> Josh
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-java-unsubscribe@...
>> For additional commands, e-mail: user-java-help@...
>>
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-java-unsubscribe@...
For additional commands, e-mail: user-java-help@...