Функция H2 DB identity () не работает во встроенном режиме - PullRequest
2 голосов
/ 14 октября 2011

Я использую базу данных H2. У меня есть таблица с идентификационной колонкой. Я выполняю вставку, а затем пытаюсь вызвать функцию identity (), чтобы определить идентификатор, назначенный вновь созданной строке.

Вот фрагмент кода, который я использую для вызова функции идентификации:

CallableStatement cs = dbConnection.prepareCall("{ ? = call IDENTITY()}");
cs.registerOutParameter(1, Types.BIGINT);
cs.execute();
id = cs.getLong(1);
cs.close();

Проблема, с которой я столкнулся, заключается в том, что по какой-то причине эта функция работает в режиме сервера, но выдает мне эту ошибку при вызове функции во встроенном режиме:

org.h2.jdbc.JdbcSQLException: параметр "# 1" не задан; Оператор SQL: ? = вызов IDENTITY () [90012-160]

...