2010-08-11 2 views
1

Я создал таблицу в MSSQL, имеющей следующую структуру -Создание ДАО с проблемой Ibatis

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

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

void insert(TestTable record); 

Я хочу, чтобы функция вставки, чтобы вернуть вновь созданный «идентификатор» для этой строки, вместо пустоты ,

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

ответ

1

В файле 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 (как задано в вопросе).