Генерация DAO с проблемой iBATIS - PullRequest
1 голос
/ 11 августа 2010

Я создал таблицу в MSSQL, имеющую следующую структуру -

**Table Name - TestTable**
id (int) (Primary key)
name (varchar) 
owner (varchar)

Я дал спецификацию Identity для столбца 'id' с автоматическим увеличением на 1 для каждой новой строки.Когда я создал артефакты iBatis для TestTable, функция вставки генерируется в DAO со следующей подписью -

 void insert(TestTable record); 

Я хочу, чтобы вместо этого функция вставки возвращала вновь сгенерированный идентификатор для этой строкиvoid.

Как этого добиться?

1 Ответ

1 голос
/ 30 сентября 2010

В файл SqlMap ibatis добавьте следующее:

<insert id="myInsertStatement">
    INSERT INTO TestTable (name, owner)
    VALUES (#name#, #owner#)
    <selectKey keyProperty="id" resultClass="int">
         SELECT SCOPE_IDENTITY()
    </selectKey>
</insert>

Или вы можете заменить Select Scope_identity другим SQL-запросом, предназначенным для возврата последнего вставленного столбца идентификаторов. Scope_identity относится к MS SQL (как указано в вопросе).

...