/ / Има ли все пак да получите генерирани ключове, когато използвате Spring JDBC batchUpdate? - java, spring, jdbc

Има ли все пак да се генерират ключове, когато използвате Spring JDBC batchUpdate? - java, spring, jdbc

Използвам JDBC и искам да вмъкна партида, но имам нужда от генерираните ключове за следващия кръг от вложки - има ли така или иначе да се постигне това?

MapSqlParameterSource[] batchArgs ....

DAL.getNamedParameterTemplate().batchUpdate("INSERT INTO...", batchArgs);

Благодаря

Отговори:

7 за отговор № 1

Хората от рамката на пролетта опит за решение към този проблем. Но те се отказаха от опита, когато стана ясно, че няма начин да се гарантира, че решението ще работи с всички драйвери на JDBC. Това е така, защото спецификацията на JDBC не гарантира, че генерираните ключове ще бъдат достъпни след групова актуализация. невъзможно за водача да поддържа тази функция.

Така че, дори ако работите директно с JDBC, ще трябва да проверите дали вашата база данни и JDBC драйверите правят генерираните ключове достъпни.

Спомням си, че успях да постигна това с драйвера на MySQL 5.0 JDBC с известно усилие, но никога не интегрирах решението в нашето производствено приложение, тъй като трябваше да поддържаме и по-старите версии на MySQL.


0 за отговор № 2

употреба db последователности за да вземете следващата стойност на първичен ключ и да я използвате в оператора insert.