Make the lastInsertedId available when using store().
git-svn-id: https://samskivert.googlecode.com/svn/trunk@1819 6335cc39-0255-0410-8fd6-9bcaacd3b74c
This commit is contained in:
@@ -163,18 +163,22 @@ public abstract class JORARepository extends SimpleRepository
|
|||||||
* First attempts to update the supplied object and if that modifies
|
* First attempts to update the supplied object and if that modifies
|
||||||
* zero rows, inserts the object into the specified table. The table
|
* zero rows, inserts the object into the specified table. The table
|
||||||
* must be configured to store items of the supplied type.
|
* must be configured to store items of the supplied type.
|
||||||
|
*
|
||||||
|
* @return -1 if the object was updated, the last inserted id if it was
|
||||||
|
* inserted.
|
||||||
*/
|
*/
|
||||||
protected <T> void store (final Table<T> table, final T object)
|
protected <T> int store (final Table<T> table, final T object)
|
||||||
throws PersistenceException
|
throws PersistenceException
|
||||||
{
|
{
|
||||||
execute(new Operation<Object>() {
|
return execute(new Operation<Integer>() {
|
||||||
public Object invoke (Connection conn, DatabaseLiaison liaison)
|
public Integer invoke (Connection conn, DatabaseLiaison liaison)
|
||||||
throws SQLException, PersistenceException
|
throws SQLException, PersistenceException
|
||||||
{
|
{
|
||||||
if (table.update(object) == 0) {
|
if (table.update(object) == 0) {
|
||||||
table.insert(object);
|
table.insert(object);
|
||||||
|
return liaison.lastInsertedId(conn);
|
||||||
}
|
}
|
||||||
return null;
|
return -1;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user