Използвам JDBC и искам да вмъкна партида, но имам нужда от генерираните ключове за следващия кръг от вложки - има ли така или иначе да се постигне това?
MapSqlParameterSource[] batchArgs ....
DAL.getNamedParameterTemplate().batchUpdate("INSERT INTO...", batchArgs);
Благодаря
Отговори:
7 за отговор № 1Хората от рамката на пролетта опит за решение към този проблем. Но те се отказаха от опита, когато стана ясно, че няма начин да се гарантира, че решението ще работи с всички драйвери на JDBC. Това е така, защото спецификацията на JDBC не гарантира, че генерираните ключове ще бъдат достъпни след групова актуализация. невъзможно за водача да поддържа тази функция.
Така че, дори ако работите директно с JDBC, ще трябва да проверите дали вашата база данни и JDBC драйверите правят генерираните ключове достъпни.
Спомням си, че успях да постигна това с драйвера на MySQL 5.0 JDBC с известно усилие, но никога не интегрирах решението в нашето производствено приложение, тъй като трябваше да поддържаме и по-старите версии на MySQL.
0 за отговор № 2
употреба db последователности за да вземете следващата стойност на първичен ключ и да я използвате в оператора insert.