Top Description Fields Constructors Methods
org.springframework.jdbc.support

public Class GeneratedKeyHolder

extends Object
implements KeyHolder
Class Inheritance
All Implemented Interfaces
org.springframework.jdbc.support.KeyHolder
Imports
java.util.ArrayList, .Iterator, .List, .Map, org.springframework.dao.DataRetrievalFailureException, .InvalidDataAccessApiUsageException, org.springframework.lang.Nullable

The standard implementation of the KeyHolder interface, to be used for holding auto-generated keys (as potentially returned by JDBC insert statements).

Create an instance of this class for each insert operation, and pass it to the corresponding org.springframework.jdbc.core.JdbcTemplate or org.springframework.jdbc.object.SqlUpdate methods.

Authors
Thomas Risberg, Juergen Hoeller, Slawomir Dymitrow
Since
1.1

Field Summary

Modifier and TypeField and Description
private final List<Map<String, Object>>

Constructor Summary

AccessConstructor and Description
public
GeneratedKeyHolder()

Create a new GeneratedKeyHolder with a default list.

public
GeneratedKeyHolder(List<Map<String, Object>>
a list to hold maps of keys
keyList
)

Create a new GeneratedKeyHolder with a given list.

Method Summary

Modifier and TypeMethod and Description
public Number
getKey()

Implements org.springframework.jdbc.support.KeyHolder.getKey.

Retrieve the first item from the first map, assuming that there is just one item and just one map, and that the item is a number.
public <T> T
getKeyAs(Class<T>
the type of the auto-generated key
keyType
)

Implements org.springframework.jdbc.support.KeyHolder.getKeyAs.

Retrieve the first item from the first map, assuming that there is just one item and just one map, and that the item is an instance of specified type.
public List<Map<String, Object>>
getKeyList()

Implements org.springframework.jdbc.support.KeyHolder.getKeyList.

Return a reference to the List that contains the keys.
public Map<String, Object>
getKeys()

Implements org.springframework.jdbc.support.KeyHolder.getKeys.

Retrieve the first map of keys.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

keyListback to summary
private final List<Map<String, Object>> keyList

Constructor Detail

GeneratedKeyHolderback to summary
public GeneratedKeyHolder()

Create a new GeneratedKeyHolder with a default list.

GeneratedKeyHolderback to summary
public GeneratedKeyHolder(List<Map<String, Object>> keyList)

Create a new GeneratedKeyHolder with a given list.

Parameters
keyList:List<Map<String, Object>>

a list to hold maps of keys

Method Detail

getKeyback to summary
public Number getKey() throws InvalidDataAccessApiUsageException, DataRetrievalFailureException

Implements org.springframework.jdbc.support.KeyHolder.getKey.

Doc from org.springframework.jdbc.support.KeyHolder.getKey.

Retrieve the first item from the first map, assuming that there is just one item and just one map, and that the item is a number. This is the typical case: a single, numeric generated key.

Keys are held in a List of Maps, where each item in the list represents the keys for each row. If there are multiple columns, then the Map will have multiple entries as well. If this method encounters multiple entries in either the map or the list meaning that multiple keys were returned, then an InvalidDataAccessApiUsageException is thrown.

Returns:Number

the generated key as a number

Annotations
@Override
@Nullable
Exceptions
InvalidDataAccessApiUsageException:
if multiple keys are encountered
getKeyAsback to summary
public <T> T getKeyAs(Class<T> keyType) throws InvalidDataAccessApiUsageException, DataRetrievalFailureException

Implements org.springframework.jdbc.support.KeyHolder.getKeyAs.

Doc from org.springframework.jdbc.support.KeyHolder.getKeyAs.

Retrieve the first item from the first map, assuming that there is just one item and just one map, and that the item is an instance of specified type. This is a common case: a single generated key of the specified type.

Keys are held in a List of Maps, where each item in the list represents the keys for each row. If there are multiple columns, then the Map will have multiple entries as well. If this method encounters multiple entries in either the map or the list meaning that multiple keys were returned, then an InvalidDataAccessApiUsageException is thrown.

Parameters
keyType:Class<T>

the type of the auto-generated key

Returns:T

the generated key as an instance of specified type

Annotations
@Override
@Nullable
Exceptions
InvalidDataAccessApiUsageException:
if multiple keys are encountered
getKeyListback to summary
public List<Map<String, Object>> getKeyList()

Implements org.springframework.jdbc.support.KeyHolder.getKeyList.

Doc from org.springframework.jdbc.support.KeyHolder.getKeyList.

Return a reference to the List that contains the keys.

Can be used for extracting keys for multiple rows (an unusual case), and also for adding new maps of keys.

Returns:List<Map<String, Object>>

the List for the generated keys, with each entry representing an individual row through a Map of column names and key values

Annotations
@Override
getKeysback to summary
public Map<String, Object> getKeys() throws InvalidDataAccessApiUsageException

Implements org.springframework.jdbc.support.KeyHolder.getKeys.

Doc from org.springframework.jdbc.support.KeyHolder.getKeys.

Retrieve the first map of keys.

If there are multiple entries in the list (meaning that multiple rows had keys returned), then an InvalidDataAccessApiUsageException is thrown.

Returns:Map<String, Object>

the Map of generated keys for a single row

Annotations
@Override
@Nullable
Exceptions
InvalidDataAccessApiUsageException:
if keys for multiple rows are encountered