Как вернуть идентификаторы при вставке в mybatis и oracle с аннотацией - PullRequest
3 голосов
/ 10 октября 2011

Я пытаюсь следующее в Java

@Insert("INSERT INTO USERS (ID,NAME,AGE) VALUES(USER_SEQ.NEXTVAL,#{name},#{age})")
@Options(useGeneratedKeys=true, keyProperty="ID", keyColumn="ID")
public int insertUsers(User userBean);

Он должен возвращать новый genarated ID, но он должен возвращать «1» всегда, даже если он делает вставку в таблицу надлежащим образом.

Может кто-нибудь пробовал это «Получение идентификаторов взамен или вставка в MyBatis (аннотация) с оракулом»

Ответы [ 2 ]

3 голосов
/ 14 октября 2011

Спасибо всем за ваши ответы, но у меня есть решение, вот оно .....

@Insert("INSERT INTO USERS (NAME,AGE) VALUES(#{name},#{age})") 
@SelectKey(statement="select STANDARDS_ID_SEQ.CURRVAL from dual", resultType = int.class, before = false, keyProperty = ID)
@Options(useGeneratedKeys=true, keyProperty="ID", keyColumn="ID")

теперь он вернет новый созданный идентификатор

3 голосов
/ 12 октября 2011

Прочитайте документацию MyBatis .

keyProperty - это поле, в которое MyBatis установит ключ с помощью getGeneratedKeys или дочерним элементом selectKey вставки заявление.

Итак, дано Pojo с полем "id" с методами get и set. После выполнения оператора вставки с классом Mapper в поле идентификатора в pojo будет установлено сгенерированное значение ключа.

...